我的团队成员中没有一个能够在我们的解决方案中获得特定的WCF服务,以便在我们的本地计算机上运行。我们已经在遗留代码中继承了它并且正在尝试替换它,但由于我们无法在其上运行调试器而很难分辨它在做什么,我们可以&# 39;在调试使用它的主站点时,甚至得到它的响应。
我们的应用程序的主要部分是一个网站。由于在与主站点相同的应用程序池中使用Excel interops(此服务使用)的一些问题,此特定服务托管在IIS上的单独应用程序池中。
该服务似乎使用net.tcp作为协议,我已在我的计算机上启用了Windows Communication Foundation非HTTP激活功能。我还启用了默认网站上的协议及其下面的节点,这是有问题的WCF服务(这是多余的?)。
我可以将调试器附加到站点和服务的w3wp.exe进程。但是,当站点调用服务时,会立即返回错误,并且不会命中服务中的断点。错误如下:
服务' MySvc.svc'由于异常期间无法激活 汇编。异常消息是:类型' MyNamespace.MySvc', 作为ServiceHost指令中的Service属性值提供, 或在配置元素中提供
注意,我显然已经从这篇文章中修改了真实的服务名称等。在尝试按照许多类似问题提出的解决方案后,我无处可去。我想知道单独的应用程序池是否会加剧问题。
以下是服务项目中的Web.config。 SVC文件名为UploadAndImport.svc。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<!-- REDACTED SECTIONS PERTAINING TO LOGGING AND ENTERPRISE LIBRARY -->
</configSections>
<!-- REDACTED SECTIONS PERTAINING TO LOGGING AND ENTERPRISE LIBRARY -->
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.6.1" />
<identity impersonate="true" />
<pages controlRenderingCompatibilityVersion="4.0" />
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="ServiceBehavior" name="ProjectName.UploadAndImport">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="" name="ExcelServiceEndPointHTTP" contract="ProjectName.IUploadAndImport" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint binding="netTcpBinding" bindingConfiguration="" name="ExcelServiceEndPointTCP" contract="ProjectName.IUploadAndImport" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<!-- This line ignores the error that 'An ASP.NET setting has been detected that does not apply in Integratd managed pipeline mode (system.web/identity@impersonate is set to true)'-->
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
SVC文件中的指令如下所示:
<%@ ServiceHost Language="VB" Debug="true" Service="ProjectName.UploadAndImport" CodeBehind="UploadAndImport.svc.vb" %>