잘 작동하는 WCF 서비스가 있습니다. 최근 업로드 파일 조각을 포함하도록 코드를 추가하려고 시도 했으므로 다음 오류가 발생했습니다. A 바인딩 인스턴스가 이미 URI 'http : //xxx/DSLDService/DSLDService.svc'를 수신 대기하도록 연결되었습니다. 두 개의 엔드 포인트가 동일한 ListenUri을 공유하려는 경우에도 동일한 바인딩 오브젝트 인스턴스를 공유해야합니다. 충돌하는 두 종점은 AddServiceEndpoint() 호출, 구성 파일 또는 AddServiceEndpoint()와 config의 조합으로 지정되었습니다.바인딩 인스턴스가 이미 URI 오류 청취와 연결되었습니다.
사이트 구성 파일에서 서비스의 FileUpload 부분에 포함 된 항목을 제거하면 업로드가 실패 할 수 있습니다. 아래에있는 내 서비스와 클라이언트 설정은, 누군가가 그들을보고 그들이 뭔가를 볼 경우 알려 주시기 수 있습니다
클라이언트의 Web.config :
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IRequestType" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IRecipientType" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_ICase" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IHoliday" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IManagerType" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IDonor" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IUser" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_ICaseStatus" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_ICaseDonor" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IAbsence" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IAgency" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="20000000"
maxReceivedMessageSize="20000000" useDefaultWebProxy="true" />
<binding name="BasicHttpBinding_IDocument" closeTimeout="04:01:00"
openTimeout="04:01:00" receiveTimeout="04:01:00" sendTimeout="04:01:00"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
transferMode="Streamed">
<readerQuotas maxDepth="128" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IRequestType"
contract="DSLDServiceReference.IRequestType" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IRecipientType"
contract="DSLDServiceReference.IRecipientType" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICase"
contract="DSLDServiceReference.ICase" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IHoliday"
contract="DSLDServiceReference.IHoliday" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IManagerType"
contract="DSLDServiceReference.IManagerType" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDonor"
contract="DSLDServiceReference.IDonor" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUser"
contract="DSLDServiceReference.IUser" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICaseStatus"
contract="DSLDServiceReference.ICaseStatus" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICaseDonor"
contract="DSLDServiceReference.ICaseDonor" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAbsence"
contract="DSLDServiceReference.IAbsence" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAgency"
contract="DSLDServiceReference.IAgency" name="" />
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDocument"
contract="DSLDServiceReference.IDocument" name="" />
</client>
WCF 서비스의 Web.config의 외모를 like :
<bindings>
<basicHttpBinding>
<!-- set to 2GB files (Maximum allowed per MSDN Documentation) -->
<binding name="TransferService"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647" transferMode="Streamed">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="DSLDService.DSLDService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IRequestType" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IRecipientType" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.ICase" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IHoliday" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IManagerType" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IDonor" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IUser" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.ICaseStatus" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.ICaseDonor" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IAbsence" />
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IAgency" />
<endpoint binding="basicHttpBinding" bindingConfiguration="TransferService"
contract="DSLDService.IDocument" />
</service>
</services>
문제는 IDocument 클래스 항목과 같고 나머지는 ok입니다. 모두 내가 BasicHTTPBinding 그래서 같은 서비스에 그들을 떠날 수 있다고 생각, 왜 그것이 바인딩이 이미 연결되어 있다고 말하고 있는지 모르겠다.
감사합니다.
다른 기능을위한 다른 인터페이스를 구축 중이 었는데 각 인터페이스의 종점이 필요하다고 생각했습니다. 예를 들어 IUser는 사용자 기능을 처리하고 ICase는 Cases와 관련된 기능을 처리합니다. 그럴 필요가 없으며 하나의 엔드 포인트를 가질 수 있고 바인딩 할 수 있지만 모든 인터페이스를 유지할 수 있습니까? – Paritosh
나는 그렇게 생각하지 않는다. 1 서비스, 1 바인딩, 1 엔드 포인트가 필요하다고 생각합니다. 그리고이 서비스에는 "사용자"기능, "사례"기능과 같은 많은 기능이 포함되어 있습니다. 바인딩은 주소입니다. 귀하의 경우에는 서비스가 포함되어야하는 10-20 개의 기능을 가진 1 개의 서비스, 1 개의 바인딩, 1 개의 끝점이 있어야한다고 생각합니다. 단순하게 유지하십시오. – iefpw
감사합니다. 나는 그것을보고 결합 할 수 있는지 알아 보겠습니다. 그것을 어지럽히고 난 후에 나는 나의 WCF 서비스의 설정에서 문제를 깨달았다. 나는 IDocument 하나를 제외하고 모두 bindingConfiguration = ""을 가지고 있었기 때문에, 다른 끝점에서 분리되어 있어야하거나, 모두 bindConfiguration = "TransferService"로 변경하면 시스템이 다시 작동합니다. – Paritosh