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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 如何在asp.net MVC应用程序中访问虚拟目录中的WCF服务?_Asp.net Mvc_Wcf_Deployment_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc 如何在asp.net MVC应用程序中访问虚拟目录中的WCF服务?

Asp.net mvc 如何在asp.net MVC应用程序中访问虚拟目录中的WCF服务?,asp.net-mvc,wcf,deployment,asp.net-mvc-routing,Asp.net Mvc,Wcf,Deployment,Asp.net Mvc Routing,我正在尝试在单个网站中部署asp.net MVC和WCF服务。根站点是MVC应用程序,我将把WCF作为站点的虚拟目录运行。但是,由于MVC的路由不会将请求中继到服务,因此无法访问该服务。它会说找不到页面 尝试添加忽略路由: routes.IgnoreRoute("{resource}.svc"); 以下是我所做的: 由于根应用程序是MVC,当用户尝试访问虚拟目录中的WCF并尝试导航时,MVC将检测到该用户尚未在WCF应用程序中进行身份验证。MVC将要做的是按照web配置的指示将其重新路由到身份

我正在尝试在单个网站中部署asp.net MVC和WCF服务。根站点是MVC应用程序,我将把WCF作为站点的虚拟目录运行。但是,由于MVC的路由不会将请求中继到服务,因此无法访问该服务。它会说找不到页面


尝试添加忽略路由:

routes.IgnoreRoute("{resource}.svc");
以下是我所做的:

由于根应用程序是MVC,当用户尝试访问虚拟目录中的WCF并尝试导航时,MVC将检测到该用户尚未在WCF应用程序中进行身份验证。MVC将要做的是按照web配置的指示将其重新路由到身份验证表单页面

要解决这个问题,只需在MVC的web配置文件中添加以下代码

<location path="WCF">
    <system.web>
      <authentication mode="None">
      </authentication>
    </system.web>
</location>
这意味着禁用WCF路径的身份验证。因此,当用户访问WCF服务时,它不会通知MVC WCF尚未通过身份验证,因此不会发生重新路由


这解决了我的问题。

对不起,这对我不起作用。找不到其页面,URL将尝试重定向到登录页面。请注意,这要求WCF路径是应用程序,而不仅仅是虚拟目录。请参阅其中的说明:可配置位置:Machine.config、Root级别的Web.config、应用程序级别的Web.config。