WCF和WAS在单独的应用程序池中使用网站和Web服务时出现问题

时间:2016-04-21 14:21:57

标签: c# asp.net wcf iis

我的团队成员中没有一个能够在我们的解决方案中获得特定的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" %>

0 个答案:

没有答案