C# .NET时,远程服务器返回错误:(405)方法不允许

C# .NET时,远程服务器返回错误:(405)方法不允许,c#,.net,json,iis,C#,.net,Json,Iis,我使用以下代码调用了一个用C#编写并托管在IIS中的web服务,但它返回了一个错误 远程服务器返回错误:(405)未启用方法 但当我使用相同输入信息的邮递员时,效果很好 var httpWebRequest = (HttpWebRequest)WebRequest.Create(url_to_post); httpWebRequest.Method = "POST"; httpWebRequest.ContentType = "application/json; charset=utf-8";

我使用以下代码调用了一个用C#编写并托管在IIS中的web服务,但它返回了一个错误

远程服务器返回错误:(405)未启用方法

但当我使用相同输入信息的邮递员时,效果很好

var httpWebRequest = (HttpWebRequest)WebRequest.Create(url_to_post);
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.KeepAlive = true;

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    streamWriter.Write(json_object);
    streamWriter.Flush();
}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
    // return result;
}

首先,请捕获请求fiddler并检查其响应服务器

我们需要弄清楚405是从哪里来的。如果响应服务器是HTTP API/2.0,那么它必须来自HTTP.sys。您可能需要检查您的请求URL

但是,如果响应服务器是IIS。然后请启用失败的请求跟踪。 大多数情况下,IIS将返回405错误,因为IIS使用了错误的处理程序,或者您的正确处理程序不允许POST方法

因此,请启用失败请求跟踪,并检查返回405错误的模块/处理程序

请确保WebDAV处理程序未处理该请求。并已安装静态内容功能。您需要确保正确的处理程序正在处理请求,并且处理程序还允许POST方法


您是否确保
url\u to\u post
与您在Postman中的内容匹配?就服务器而言,它不知道是谁在调用它。只要请求具有适当的形状,它将以相同的方式处理它。你需要弄清楚你的请求之间有什么不同。