Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 405将MVC 4应用程序和WCF服务移动到IIS 8时出错_Asp.net Mvc_Wcf_Windows Server 2012_Iis 8 - Fatal编程技术网

Asp.net mvc 405将MVC 4应用程序和WCF服务移动到IIS 8时出错

Asp.net mvc 405将MVC 4应用程序和WCF服务移动到IIS 8时出错,asp.net-mvc,wcf,windows-server-2012,iis-8,Asp.net Mvc,Wcf,Windows Server 2012,Iis 8,以前,MVC4应用程序托管在windows 2003 server asp.net 4.0.30319中 WCF服务也在那里托管。 匿名访问已与IUSR_uu帐户一起检查 以及用于集成Windows身份验证的复选框 现在将网站和服务同时移动到Windows 2012服务器(IIS 8) 点击Web服务可以很好地工作: http://exampleservicetest.test.com/Service.svc?wsdl 问题:打开调用该服务的网站会返回一个405错误,错误如下所示。篡改谷歌设置

以前,MVC4应用程序托管在windows 2003 server asp.net 4.0.30319中 WCF服务也在那里托管。
匿名访问已与IUSR_uu帐户一起检查 以及用于集成Windows身份验证的复选框

现在将网站和服务同时移动到Windows 2012服务器(IIS 8) 点击Web服务可以很好地工作:

http://exampleservicetest.test.com/Service.svc?wsdl
问题:打开调用该服务的网站会返回一个405错误,错误如下所示。篡改谷歌设置并不能解决这个问题

错误

An error occurred while processing your request.
ProtocolException
    System.ServiceModel.ProtocolException: The remote server returned an unexpected      response: (405) Method Not Allowed. ---> System.Net.WebException: The remote server    returned an error: (405) Method Not Allowed.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---

看起来这是一个常见的配置问题。这是一个HTTP传输状态错误,通常意味着您试图使用web服务器不支持的HTTP方法发出HTTP请求。也就是说,您需要查看您的网站是如何请求此服务的,它使用了什么http方法…
GET
POST
PUT
DELETE
HEAD
,等等,并确定您的web服务器是否支持此方法

常见的原因有:

  • 服务公开的web方法不支持此Http方法。这不是你的情况
  • 您的网站已安装WebDav发布,并且已为您的网站启用该发布
    • 如果您需要
      WebDav
      ,请检查您的设置以启用本节所述的所需权限(注意,它与IIS7.5相关,但您可以在
    • 如果禁用
      WebDav
      ,可能还需要禁用
      web.config
      文件中的相关模块和处理程序
  • 如果您使用的是无扩展
    REST
    Url,并且使用的是
    PUT
    DELETE
    方法,那么您可能需要通过修改
    extensionless Url
    处理程序元素的
    verb
    属性来配置
    applicationhost.config
    文件以支持这些http方法


  • 是web.config路径中没有完整的service.svc

    您是否检查了应用程序池.net framework?web应用程序和服务都运行在自己的应用程序池中,都是集成管道和v4.0如果站点位于同一IIS服务器上,使用最新版本的IIS,是否可能需要web.config中的跨域策略?这些东西已经在2003年的服务器上运行,不使用REST,也不使用WebDav。这只是一个权限问题,特定于一个IIS网站在同一IIS服务器上与另一个IIS网站进行对话,其中一个是WCF web服务,可在服务器上通过URL和我的工作站显示该服务,但通常与该WCF服务进行对话的网站目前无法访问,这正是我提出这是一个配置问题的原因。但是,如果您想得到更准确的回答,最好更新您的答案,以显示您的服务是如何配置的以及网站是如何访问您的web服务的。答:此答案由问题的作者提供。你可能想回顾一下你的评论……不过,如果作者或其他人能解释一下这意味着什么,那就太好了,真诚地说,以后每个人都会发现这个问题……我没有访问该代码的权限。但它是web.config中服务的一个混乱url