我有一个 MVC 项目,我在根目录中添加了一个名为 WCF 的文件夹。在这个文件夹中,我创建了一个名为CustomFunctions
. 当我尝试启动服务时,我收到以下错误:
错误:无法从
http://localhost/Viper/WCF/CustomFunctions.svc
...获取元数据 元数据包含无法解析的引用:
附加说明:
找不到类型“Viper.WCF.CustomFunctions”,作为 ServiceHost 指令中的服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。
我昨天遇到了这个错误,并花了一些时间在互联网上寻找答案。这导致我对我的 Web.config 和 Global.asax.cs 进行了很多更改。昨天的某个时候,它开始工作,我停止了。然而,当我今天早上回来时,它并没有重新开始工作。在此期间没有添加任何新内容,也没有更改任何代码。
我在我的 Web.config 中添加了以下内容:
<system.serviceModel>
<services>
<service behaviorConfiguration="WCFBehavior" name="Viper.WCF.CustomFunctions">
<endpoint address="" binding="wsHttpBinding" contract="Viper.WCF.ICustomFunctions">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/Viper/WCF/CustomFunctions/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WCFBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" httpGetUrl=""/>
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
这对我来说Global.asax.cs
:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.svc/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}, // Parameter defaults
new { controller = "^(?!CustomFunctions).*" }
);
routes.Add(new ServiceRoute("CustomFunctions", new ServiceHostFactory(),
typeof(CustomFunctions)));
}
谁能帮我?我在这里完全没有想法。