2016-09-11 4 views
0

У меня есть служба WCF, и она работает в тестовом клиенте WCF при использовании Development Host. Но когда я использую IIS 7 и попробуйте запустить какой-то метод есть ошибка:Как избавиться от ошибки клиента WCF?

The underlying provider failed on Open. 

Server stack trace: 
    at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) 
    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at IDatabaseService.GetAllUsersWithRoles() 
    at DatabaseServiceClient.GetAllUsersWithRoles() 

Служба связи с MS SQL Server через Entity Framework. IIS 7 и MS SQL Server размещаются на одном компьютере.

Как заставить его работать?

ОБНОВЛЕНИЕ - Вот содержание файла web.config:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <compilation targetFramework="4.0" debug="true"> 
      <assemblies> 
       <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
      </assemblies> 
     </compilation> 
    </system.web> 
    <system.serviceModel> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior> 
        <!-- 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> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
    </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
    <connectionStrings> 
     <add name="ForisTestLogsEntities" connectionString="metadata=res://*/ForisTestLogsModel.csdl|res://*/ForisTestLogsModel.ssdl|res://*/ForisTestLogsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=GORAN-PC\SQLEXPRESS;Initial Catalog=ForisTestLogs;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/> 
    </connectionStrings> 
</configuration> 
+0

Просим предоставить дополнительную информацию. Вы настроили службу в Web.config? Если это так, отправьте элемент как часть вашего вопроса. –

+0

Пожалуйста, взгляните выше на ОБНОВЛЕНИЕ. – tesicg

ответ

0

Ваш файл конфигурации не определяет каких-либо услуг или конечной точки. Посмотрите на следующую страницу на MSDN, которая объясняет, как вы должны сделать это: Configuring Services

Вы должны будете добавить элемент <services> и <bindings> в файл Web.config.

В качестве альтернативы вы можете попробовать упрощенную конфигурацию, которая была введена в .NET Framework 4.0: Simplified Configuration

Если вы не чувствуете, как вручную редактировать файл Web.config, попробуйте использовать Configuration Editor Tool. Просто щелкните файл Web.config правой кнопкой мыши и выберите «Редактировать конфигурацию WCF» из контекстного меню. Более подробную информацию о инструменте вы можете найти here

Смежные вопросы