Приложение Silverlight 4, подключающееся к службе WCF, не работает - PullRequest
1 голос
/ 08 мая 2011

Работал над приложением Silverlight, которое подключается к службе WCF на нашем сервере. Я использую .NET 4.0 для разработки. Локально все работает нормально, но я попытался развернуть службу WCF на нашем сервере, и она не работает

Служба работает нормально, я проверил, введя URL в браузере. Но всякий раз, когда я звоню из приложения Silverlight, происходит сбой с ошибкой:

System.ServiceModel.CommunicationException: удаленный сервер возвратил ошибку: NotFound.

Подробная ошибка приведена ниже с моим файлом Web.Config. Я использовал fiddler для проверки сообщений и увидел, что ответ от сервера содержит текст.

а: FailedAuthentication. Доступ запрещен.

Что я могу сделать, чтобы решить эту проблему? Проблема в том, что мой хост-сервер не позволяет включить проверку подлинности Windows в IIS. Не удалось найти настройки для этого. Я использую Godaddy Windows хостинг.

Есть указатели?

Web.Config: </p> <pre><code> <authentication mode="Windows"/> <customErrors mode="Off"/> <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web> <system.serviceModel> <serviceHostingEnvironment multipleSiteBindingsEnabled="true"></serviceHostingEnvironment> <services> <service name="WarpArtOnline.Service1" behaviorConfiguration="WarpArtOnline.Service1Behavior"> <endpoint binding="basicHttpBinding" bindingConfiguration="MaxSizeBinding" contract="WarpArtOnline.IService1"> <identity> <dns value="localhost" /> </identity> </endpoint> <!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>--> </service> </services> <bindings> <basicHttpBinding> <binding name="MaxSizeBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> <security mode="None"> <!--<transport clientCredentialType="Windows"/>--> <!--<transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" />--> </security> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="WarpArtOnline.Service1Behavior"> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="true"/> <dataContractSerializer maxItemsInObjectGraph="2147483647" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>

Ошибка: {System.ServiceModel.CommunicationException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.BrowserHttpWebRequest.<>c_<em>DisplayClass5.b</em>_4(Object sendState) at System.Net.Browser.AsyncHelper.<>c_<em>DisplayClass4.b</em>_1(Object sendState) --- End of inner exception stack trace --- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result) --- End of inner exception stack trace --- at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) at System.ServiceModel.ClientBase<code>1.ChannelBase 1.EndInvoke (String methodName, Object [] args, результат IAsyncResult) в ImagingSL.WebWarp.Service1Client.Service1ClientChannel.EndwarpImage (результат IAsyncResult) в ImagingSL.WebWarp.Service1Client.ImagingSL.WebWarp.IService1.EndwarpImage (результат IAsyncResult) в ImagingSL.WebWarp.Service1Client.OnEndwarpImage (результат IAsyncResult) в System.ServiceModel.ClientBase`1.OnAsyncCallCompleted (результат IAsyncResult)}

Ответы [ 2 ]

0 голосов
/ 09 мая 2011

Используете ли вы файл ServiceReferences.ClientConfig в своем проекте Silverlight? Если да, проверили ли вы все настройки конечной точки?

0 голосов
/ 08 мая 2011

Вы изменили файл clientaccesspolicy.xml ?Вам необходимо включить междоменный доступ в этом файле. Ссылка на это Обеспечение доступности услуги через границы домена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...