ASP.NET HttpWebRequest POST返回“远程服务器返回错误:(405)方法不允许”。只有在VS dev服务器
我使用HttpWebRequest将数据发布到ASP.NET网页(当前在ASP.NET开发服务器上运行)以下是代码;ASP.NET HttpWebRequest POST返回“远程服务器返回错误:(405)方法不允许”。只有在VS dev服务器
string url = "http://localhost:3333/MySite/";
WebResponse response = null;
try {
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "data=test";
byte[] dataBtyes = encoding.GetBytes(postData);
request.UserAgent = "Custom Agent";
request.Method = "POST";
request.KeepAlive = true;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = dataBtyes.Length;
Stream stream = request.GetRequestStream();
stream.Write(dataBtyes, 0, dataBtyes.Length);
stream.Close();
response = request.GetResponse();
} catch (Exception e) {
}
使用HTTPModule我拦截来自“自定义代理”的请求并发回自定义标题。这适用于GET请求,但是我想发送的数据可能会超出GET请求所允许的限制,所以我想使用POST(如上所述)。
我已经在真实的IIS服务器上测试过这段代码,它工作正常,但是Visual Studio开发服务器在发送POST数据后每次调用GetResponse()都会导致发生异常“405方法不允许” )
任何人都可以提供解释,为什么开发服务器似乎拒绝POST请求?
编辑:问题标题和正文更新,以强调与VS开发服务器驻留的问题。
我发现在发送到文件夹地址时返回“405方法不允许”错误。 (使用上面的问题代码)
VS开发服务器貌似不允许;
...但很满意;
的IIS服务器产生用于误差;
...但很满意;
哦,这让我想起IIS具有特定于/的Handler映射。这意味着aspx,svc等的处理程序映射不会自动应用 - 如果您指向/ WebSite /而不是/WebSite/Default.aspx – Independent
请找到一种方法来捕获请求并将其添加到您的问题。也很高兴看到响应(如果有的话)。你可以用Firebug插件来获得它,或者如果你想要一些轻量级的嗅探器尝试使用这一个http://www.nirsoft.net/utils/smsniff.html –
我无法在环回上嗅探本地数据包。 (注意,这个问题已经更新) –