gpt4 book ai didi

c# - 文件正在通过 visual studio 下载,而不是通过 .exe 下载

转载 作者:太空狗 更新时间:2023-10-29 23:28:49 30 4
gpt4 key购买 nike

当我尝试通过我的 .exe 文件从 url 下载 .pdf 文件时出现以下错误。

The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF

但是当我尝试从 visual studio 调试代码时,下载的也是同样的内容。我完全迷路了,不知道发生了什么事。谁能告诉我可能是什么问题

我的App.config 文件

<?xml version="1.0"?>
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>

useUnsafeHeaderParsing="true" 是每个人都在互联网上声明的明显修复,不幸的是它不起作用

这是我的网络客户端代码

public class CookieAwareWebClient : WebClient {
private CookieContainer cc = new CookieContainer();
private string lastPage;

protected override WebRequest GetWebRequest(Uri address) {
if (address.Scheme == Uri.UriSchemeHttps) {
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072 | SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
// allows for validation of SSL conversations
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
}
WebRequest R = base.GetWebRequest(address);
if (R is HttpWebRequest) {
HttpWebRequest wr = (HttpWebRequest)R;
wr.CookieContainer = cc;
if (lastPage != null) {
wr.Referer = lastPage;
}
}
lastPage = address.ToString();
return R;
}
}

更新: 我的 .exe 能够下载除少数以外的大部分 url。假设我有 4 个 url:A、B、C 和 D。我的 visual studio 能够从所有 4 个 url 下载文件,但我的 .exe 从前 3 个 url 下载文件。对于 url,D 它抛出

The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF

更新 2: 我正在尝试使用 fiddler 跟踪 D url。当我从浏览器运行 D url 来下载文件时,我得到了下面的 header 并且文件被下载。另请注意,D 网址在下载前被重定向到另一个网址

CONNECT www.loim.com:443 HTTP/1.1
Host: www.loim.com:443
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

当我尝试使用 .exeD url 下载文件时,我得到了以下 header

CONNECT www.loim.com:443 HTTP/1.1
Host: www.loim.com
Connection: Keep-Alive

出于某种原因,User-Agent 是问题所在吗?

Update3: dir/s/b bin\debug

C:\Pradeep\TFS\proj\bin\Debug\app.publish
C:\Pradeep\TFS\proj\bin\Debug\CLImport.application
C:\Pradeep\TFS\proj\bin\Debug\CLImport.exe
C:\Pradeep\TFS\proj\bin\Debug\CLImport.exe.config
C:\Pradeep\TFS\proj\bin\Debug\CLImport.exe.manifest
C:\Pradeep\TFS\proj\bin\Debug\CLImport.pdb
C:\Pradeep\TFS\proj\bin\Debug\CLImport.vshost.application
C:\Pradeep\TFS\proj\bin\Debug\CLImport.vshost.exe
C:\Pradeep\TFS\proj\bin\Debug\CLImport.vshost.exe.config
C:\Pradeep\TFS\proj\bin\Debug\CLImport.vshost.exe.manifest
C:\Pradeep\TFS\proj\bin\Debug\FED.Business.Collection.dll
C:\Pradeep\TFS\proj\bin\Debug\FED.Business.Collection.pdb
C:\Pradeep\TFS\proj\bin\Debug\FED.Data.Collection.dll
C:\Pradeep\TFS\proj\bin\Debug\FED.Data.Collection.pdb
C:\Pradeep\TFS\proj\bin\Debug\FED.DataSource.Utilities.dll
C:\Pradeep\TFS\proj\bin\Debug\FED.DataSource.Utilities.pdb
C:\Pradeep\TFS\proj\bin\Debug\GemBox.Spreadsheet.dll
C:\Pradeep\TFS\proj\bin\Debug\ICSharpCode.SharpZipLib.dll
C:\Pradeep\TFS\proj\bin\Debug\Ignored
C:\Pradeep\TFS\proj\bin\Debug\itextsharp.dll
C:\Pradeep\TFS\proj\bin\Debug\Microsoft.Exchange.WebServices.dll
C:\Pradeep\TFS\proj\bin\Debug\Processed
C:\Pradeep\TFS\proj\bin\Debug\tt.text
C:\Pradeep\TFS\proj\bin\Debug\app.publish\CLImport.exe

最佳答案

application configuration file需要与 .exe 位于同一文件夹中。当您部署 CLImport.exe 时,您还应该将 CLImport.exe.config 部署到该文件夹​​。

关于c# - 文件正在通过 visual studio 下载,而不是通过 .exe 下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46469956/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com