Я пытаюсь развернуть настольное приложение Windows с уровнем обслуживания, уровнем logi c и уровнем данных. Уровень данных использует SQL сервер с EF 6.2. Уровень клиента пользовательского интерфейса - это приложение Windows Forms.
Приложение отлично работает в тестовом режиме отладки, когда служба размещается в приложении WcfSvcUtil.exe
с псевдонимом службы в IIS - без ошибок и извлечения всех данных и обновления работают в тестовом режиме.
Теперь я опубликовал уровень обслуживания, уровень logi c и уровень данных как пустой веб-сайт, который будет размещен IIS на моем локальном компьютере (c: / inetpub / wwwroot/) в подпапке «псевдоним». Я создал приложение IIS с именем псевдонима для службы. Уровень пользовательского интерфейса и уровень службы публикуются в другой локальной папке на моем компьютере.
Когда я запускаю уровень пользовательского интерфейса и пытаюсь запросить SQL базу данных сервера, я получаю следующую ошибку:
Конечная точка http://localhost/TheACTSFactoryWCFLocal/MemberService/, которая могла бы принять сообщение, отсутствовала. Часто это вызвано неправильным адресом или действием SOAP. Для получения дополнительных сведений см. InnerException, если он присутствует.
Элемент My Service Model в web.config
на размещенном веб-сайте:
<system.serviceModel>
<services>
<service name="ACTSFactoryService.MemberService">
<endpoint name="BasicHttpBinding_IMemberService"
address=""
binding="basicHttpBinding"
contract="ACTSFactoryService.IMemberService" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/TheACTSFactoryWCFLocal/MemberService/" />
</baseAddresses>
</host>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="./MemberService.svc"
service="ACTSFactoryService.MemberService" />
</serviceActivations>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMemberService"
maxReceivedMessageSize="20000000" maxBufferSize="20000000" />
</basicHttpBinding>
</bindings>
</system.serviceModel>
Я новичок в WCF и Entity Framework, поэтому любые предложения будут оценены. У меня также есть app.config
и web.config
на уровне обслуживания и app.config
на уровне пользовательского интерфейса. Я могу опубликовать их, если вы считаете, что они будут полезны, но для показанного IIS web.config
я в основном объединил конечные точки из конфигурационных файлов уровня сервиса для публикации на веб-сайте IIS.
** Изменено мой файл web.config, как показано ниже **
***
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
</system.web>
<system.serviceModel >
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" >
<serviceActivations >
<add factory ="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="./MemberService.svc"
service="ACTSFactoryService.MemberService" />
</serviceActivations>
</serviceHostingEnvironment>
<behaviors >
<serviceBehaviors >
<behavior >
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
***
Кроме того, когда я перехожу к http://localhost/TheACTSFactoryWCFLocal/MemberService.svc, моя служба обнаруживается.
Ниже приведен файл App.config на уровне пользовательского интерфейса:
***
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMemberService" maxBufferSize="20000000"
maxReceivedMessageSize="20000000" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost/TheACTSFactoryWCFLocal/MemberService/"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMemberService"
contract="MemberServiceProxy.IMemberService" />
</client>
</system.serviceModel>
</configuration>
***
Вот сервер IIS папка с именем псевдонима приложения IIS, там нет SV C файл
Вот библиотеки DLL , et c, опубликовано в папке Bin
Развертывание папки Alias / Bin на сервере IIS выглядит нормально для служба WCF, размещенная в IIS 10.0 дюйма NET 4.5.2? Также я ничего не публиковал sh в папку Roslyn (CodeDom). Есть комментарии или предложения?