2017-05-05 26 views
0

我有一個問題,部署WCF服務,遠程IIS, 時,首先,我必須與解決方案包含兩個項目如何解決無法找到system.serviceModel/serviceHostingEnvironment/serviceActivations。 iis託管wcf服務時出錯?

  1. WCF庫(ExchangeMailCore)
  2. WCF應用(ExchangeMailService)

內我的圖書館項目有ExchangeEmailService.csExchangeEmailService.cs文件。

enter image description here

然後我包括在該庫ExchangeMailService項目,並創造了新的.svc文件如下

<%@ServiceHost Language="C#" Debug="true" Service="ExchangeMailCore.ExchangeEmailService" %> 

我的web.config文件,如下所示,

<?xml version="1.0"?> 
<configuration> 

    <appSettings> 
    <!--<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />--> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    <add key="ClientSettingsProvider.ServiceUri" value="" /> 
    </appSettings> 


    <system.web> 

    <!--<compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5"/>--> 
    <compilation debug="true" /> 
    <membership defaultProvider="ClientAuthenticationMembershipProvider"> 
     <providers> 
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="ClientRoleProvider" enabled="true"> 
     <providers> 
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> 
     </providers> 
    </roleManager> 
    </system.web> 



    <system.serviceModel> 

    <!--<bindings> 
     <basicHttpBinding> 
     <binding name="NetTcpBindingEndpointConfig"> 
      --><!--<security mode="Message" />--><!-- 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows"> 
      </transport> 
      --><!--<message clientCredentialType=""/>--><!-- 
      </security> 
     </binding> 
     </basicHttpBinding> 
    </bindings>--> 


    <!--<services> 
     <service name="ExchangeMailCore.ExchangeEmailService"> 
     </service> 
    </services>--> 

    <services> 
     <service name="ExchangeMailCore.ExchangeEmailService"> 
     <endpoint address="" binding="basicHttpBinding" contract="ExchangeMailCore.IExchangeEmailService" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8734/Design_Time_Addresses/ExchangeMailCore/ExchangeEmailService/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 


    <!--<behaviors> 
     <serviceBehaviors> 
     <behavior> 
      --><!-- To avoid disclosing metadata information, set the values below to false before deployment --><!-- 
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="False"/> 
      --><!-- 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>--> 


    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, 
      set the values below to false before deployment --> 
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="False" /> 
      <!-- 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="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 


    <!--<protocolMapping> 
     <add binding="basicHttpBinding" scheme="http" /> 
    </protocolMapping>  

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />--> 

    </system.serviceModel> 



    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    <!-- 
     To browse web app root directory during debugging, set the value below to true. 
     Set to false before deployment to avoid disclosing web app folder information. 
     --> 
    <directoryBrowse enabled="true"/> 

    </system.webServer> 

</configuration> 

這完美運行在本地主機上,但是當我部署到遠程服務器時,它會產生以下錯誤,

enter image description here

.NET框架是4.5

是任何一個能幫助這個?

回答

1

經過美好的夜晚,我找到了解決方案,解決方案是將所需的庫文件(.dlls)添加到已部署的文件夾bin文件夾,我使用EWS進行電子郵件提取,因此我必須將ews庫添加到bin發佈的文件夾的文件夾,謝謝,啤酒花這將有助於某人。