2010-11-13 8 views
0

Я прочитал несколько сообщений, в которых пользователи имели эту же проблему. При компиляции файл .exe не может загружать любые ресурсы из app.config. Это происходит даже тогда, когда app.config копируется в выходной каталог.app.config игнорируется?

В частности, у меня проблема с клиентом веб-службы будучи не в состоянии определить правильную конфигурацию конечной точки, даже если я статически скомпилировать его так:

this.ws = new MyServicePortTypeClient("MyServicePort", "http://mysite.com/customer_portal/ws.php"); 

за исключением выброшенные состояния «системы. InvalidOperationException: не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт «MyWebService.MyServicePortType» в разделе конфигурации клиента ServiceModel. Возможно, это связано с тем, что для вашего приложения не был найден файл конфигурации или потому, что в клиенте не найден элемент конечной точки, соответствующий этому контракту элемент."

Я в затруднении, поэтому любая помощь будет оценена по достоинству.

Edit: Вот MyService.exe.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="MyServiceBinding" closeTimeout="00:01:00" 
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
        useDefaultWebProxy="true"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
         maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
        <security mode="None"> 
         <transport clientCredentialType="None" proxyCredentialType="None" 
          realm="" /> 
         <message clientCredentialType="UserName" algorithmSuite="Default" /> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://mysite.com/customer_portal/ws.php" 
       binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" 
       contract="MyWebService.MyServicePortType" name="MyServicePort" /> 
     </client> 
    </system.serviceModel> 
</configuration> 
+1

Если вы создаете такое же исключение, задаете ли вы конфигурацию в app.config или нет, мне кажется, что app.config не участвует в вашей реальной проблеме. –

+0

Если это так, то что бы это было? Дополнительная информация, которая может быть полезной, заключается в том, что это приложение для Windows. Он отлично работает, когда я отлаживаю его через Visual Studio, но после его установки с помощью installutil он дает мне эту ошибку. – Skudd

+0

Можете ли вы ** показать нам ** приложение app.config, которое вы используете? Эта ошибка, скорее всего, вызвана неправильной конфигурацией WCF в этом файле. Просто раздел '' - спасибо! –

ответ

1

Ну, я понял это с помощью информации, предоставленной каждому.

Проблема заключается в том, что installutil.exe пытается использовать собственную конфигурацию, а не созданную службой. В этом случае он пытается загрузить C: \ Windows \ Microsoft.NET \ Framework \ v2.0 ... \ InstallUtil.config.

Теперь, когда я понял это, я могу работать с ним и заставить его работать правильно.

Спасибо, y'all!

+1

ну, вы не упомянули об использовании installutil.exe - рад, что вы все равно решили. :) –

1

EXE принимает параметры из FileName.exe.config, а не от App.config

filename.exe .config должен быть сгенерирован автоматически при компиляции кода и размещен рядом с самим EXE.

Проверьте папку, в которой у вас есть EXE .. вы видите FileName.exe.config?

(Добавлено в ответ из-за длины и форматирования)

+0

Я проверил и действительно есть FileName.exe.config, который я добавил в исходное сообщение. Тем не менее, это игнорируется. – Skudd

+0

Служба WCF обычно имеет расширение .svc, поэтому я не уверен, что происходит. Я сомневаюсь, что вы можете написать службу WCF с PHP. Возможно, клиент бросает ошибку, потому что код PHP не возвращает действительный ответ. –

+0

Пожалуйста, прочитайте сообщение, начинающееся с «Ну, я понял это ...» в этой теме. Конечная точка PHP не является проблемой. – Skudd

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