C# 将文件发送到Asp.net
我正在尝试测试一个可能的应用程序。它是一个ASP.net站点,将在其默认页面中接收xml文件。 客户端将是一个应用程序,它将生成包含该文件的HTTP Post 没有UI参与 我制作了原型Asp.NETWeb应用程序(Framework 4.5.2)和一个Winform应用程序来实现它 我在Winform应用程序中尝试了所有形式的HTTP发布代码,但尽管WebApp default.aspx被命中,但我无法访问有效负载 这包括:C# 将文件发送到Asp.net,c#,asp.net,C#,Asp.net,我正在尝试测试一个可能的应用程序。它是一个ASP.net站点,将在其默认页面中接收xml文件。 客户端将是一个应用程序,它将生成包含该文件的HTTP Post 没有UI参与 我制作了原型Asp.NETWeb应用程序(Framework 4.5.2)和一个Winform应用程序来实现它 我在Winform应用程序中尝试了所有形式的HTTP发布代码,但尽管WebApp default.aspx被命中,但我无法访问有效负载 这包括: 测试应用程序正在读取文件并发布字符串。网页中的StreamRead
- 测试应用程序正在读取文件并发布字符串。网页中的StreamReader在读取Request.InputStream时生成空字符串
- WebClient.UpLoadFile尝试。Request.Files集合为空
private void OpenFile(string _file)
{
// WEBCLIENT TRY
using (WebClient client = new WebClient())
{
client.UploadFile("http://localhost:21726/Default.aspx", _file);
}
}
ASP.NET代码“Web客户端接收”如下
private void ProcessData(HttpRequest request)
{
try
{
// WEB CLIENT RECEIVE ATTEMPT
foreach (string f in Request.Files.AllKeys)
{
HttpPostedFile file = Request.Files[f];
file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
}
catch (Exception ex)
{
string message = ex.Message;
throw;
}
}
网页更改为Microsoft Webclient.UploadFile示例(如下)中的示例代码。
行为没有改变。
所以一定是WinApp测试仪
<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>
<Script language="C#" runat=server>
void Page_Load(object sender, EventArgs e) {
foreach(string f in Request.Files.AllKeys) {
HttpPostedFile file = Request.Files[f];
file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
}
}
</Script>
<html>
<head></head>
<body>
<p> Upload complete. </p>
</body>
</html>
无效页面加载(对象发送方,事件参数e){
foreach(Request.Files.AllKeys中的字符串f){
HttpPostedFile file=Request.Files[f];
file.SaveAs(“c:\\inetpub\\test\\UploadedFiles\\”+file.FileName);
}
}
上传完成
问题有两个方面:
webApp在IDE下显示OK,表示上面的RequestFiles容器中没有文件。
一旦我发布到本地IIS,它就开始向WinApp测试客户端返回错误500。
我们追溯到目录访问权(有趣的是)。我们当时正兴高采烈地尝试向网站之外的位置写信。因此,在站点中添加了一个上载子目录,并设置了完全权限。 然后将文件写入代码更改为:
foreach(string f in Request.Files.AllKeys)
{
//File.Create(@"C:\test1.txt");
HttpPostedFile file = Request.Files[f];
file.SaveAs(Server.MapPath("~/Upload/") + file.FileName);
}
现在一切正常 您应该添加一些代码,说明它不起作用的地方,以及有关它的具体问题。如果没有提供代码,就很难帮助您(如果不是自己编写的话)为Webclient尝试添加代码片段,因为这是首选解决方案。