Próbuję dodać odwołanie do usługi WCF do mojej aplikacji sieci Web przy użyciu VS2010. Wydaje się, aby dodać OK, ale web.config nie jest aktualizowana, co oznacza, otrzymuję wyjątek środowiska wykonawczego:Podczas dodawania odwołania do usługi WCF szczegóły konfiguracji nie są dodawane do pliku web.config
Nie można znaleźć domyślnego Endpoint element, który kontrakt odniesienia „CoolService.CoolService” w konfiguracji klienta ServiceModel Sekcja . Może to być spowodowane tym, że nie znaleziono pliku konfiguracyjnego dla Twojej aplikacji lub ponieważ w elemencie klienta nie znaleziono elementu końcowego zgodnego z tą umową .
Oczywiście, ponieważ usługa nie jest zdefiniowana w moim pliku web.config. Kroki prowadzące do odtworzenia:
- Rozwiązanie prawym przyciskiem myszy> Dodaj> Nowy projekt> Pusta aplikacja ASP.NET.
- Kliknij prawym przyciskiem myszy Odsyłacze serwisowe w nowej aplikacji internetowej> Dodaj odniesienie do usługi.
- Wprowadź adres mojej usługi i kliknij Przejdź. Moja usługa jest widoczna w sekcji Usługi po lewej stronie i widzę wszystkie jej operacje.
- Wpisz przestrzeń nazw dla mojej usługi.
- Kliknij OK. Odwołanie do usługi jest generowane poprawnie i mogę otworzyć plik Reference.cs i wszystko wygląda OK.
Otwórz plik web.config. Jest nadal pusty!
<system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <bindings /> <client /> </system.serviceModel>
Dlaczego tak się dzieje? Dzieje się tak również w przypadku aplikacji konsolowej lub dowolnego innego typu projektu, który próbuję. Jakaś pomoc?
Oto app.config z moim usług WCF:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<services>
<service name="CoolSQL.Server.WCF.CoolService">
<endpoint address=""
binding="webHttpBinding"
contract="CoolSQL.Server.WCF.CoolService"
behaviorConfiguration="SilverlightFaultBehavior">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/CoolSQL.Server.WCF/CoolService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
<behavior name="SilverlightFaultBehavior">
<silverlightFaults />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="DefaultBinding"
bypassProxyOnLocal="true"
useDefaultWebProxy="false"
hostNameComparisonMode="WeakWildcard"
sendTimeout="00:05:00"
openTimeout="00:05:00"
receiveTimeout="00:00:10"
maxReceivedMessageSize="2147483647"
transferMode="Streamed">
<readerQuotas maxArrayLength="2147483647"
maxStringContentLength="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<extensions>
<behaviorExtensions>
<add name="silverlightFaults"
type="CoolSQL.Server.WCF.SilverlightFaultBehavior, CoolSQL.Server.WCF" />
</behaviorExtensions>
</extensions>
<diagnostics>
<messageLogging logEntireMessage="true"
logMalformedMessages="false"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="false"
maxMessagesToLog="3000"
maxSizeOfMessageToLog="2000" />
</diagnostics>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.0" />
</startup>
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging"
switchValue="Information, ActivityTracing">
<listeners>
<add name="messages"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\messages.e2e" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
Czy konfiguracja po stronie serwera znajduje się w aplikacji konsolowej * i * projekcie usługi WCF? –
Nie, tylko w projekcie usługi WCF. –