2010-11-18 30 views
7

Tôi đã thiết lập một tình huống dịch vụ tự lưu trữ khi tôi thiết lập một số máy chủ dịch vụ theo lập trình. Đối với mỗi một trong các máy chủ mà tôi mở, tôi thấy lỗi sau đây trong các dấu vết log:Lỗi theo dõi WCF: Ngữ cảnh đánh giá cấu hình không tìm thấy

<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning"> 
    <TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.EvaluationContextNotFound.aspx</TraceIdentifier> 
    <Description>Configuration evaluation context not found.</Description> 
    <AppDomain>myprogram.exe</AppDomain> 
</TraceRecord> 

Tôi đã đọc rằng đây là do sử dụng phần mở rộng không được khai báo trong tập tin cấu hình, và tôi thực sự sử dụng một phần mở rộng hành vi tùy chỉnh, nhưng thêm nó vào tập tin cấu hình của .exe không có bất kỳ tác:

<system.serviceModel> 
    <extensions> 
     <behaviorExtensions> 
      <add name="myext" type="mytype, myassembly" /> 
     </behaviorExtensions> 
    </extensions> 
    .... 
</system.serviceModel> 

Lưu ý rằng tôi không sử dụng phần mở rộng này bất cứ nơi nào khác trong tập tin cấu hình, tôi thêm nó tới máy chủ dịch vụ theo lập trình. Tôi thậm chí thiết lập một hành vi giả sử dụng phần mở rộng chỉ để xem nếu nó sẽ giải quyết vấn đề, nhưng nó không.

Tại sao tôi thấy lỗi này trong nhật ký của mình?

Trả lời

1

Tôi gặp sự cố này và thấy rằng tôi có nhiều liên kết tùy chỉnh nhận dạng trong tệp ServiceReferences.clientconfig. Tôi chỉ đơn giản là nhận xét ra các tính năng bổ sung và tất cả đều tốt. (Tôi đang sử dụng Silverlight để gọi các dịch vụ WCF)

<customBinding> 
    <binding name="SecureTransportNoCredentialsEndpoint"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <!--<binding name="SecureTransportNoCredentialsEndpoint1"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint2"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint11"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint3"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint12"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding>--> 
    </customBinding> 
</bindings> 
0

Trong trường hợp của tôi, tôi đã WCF giao diện với các lớp có chứa thuộc tính chuỗi "GCM" và sau đó thêm một định nghĩa lớp mới gọi là "GCM". Khi tôi đổi tên Class thành "GCMObj" thì lỗi đó biến mất.

0

Trải nghiệm của tôi là bạn phải tạo dịch vụ theo cách thủ công với tên dịch vụ và các chi tiết khác trong thẻ.

ví dụ:

<system.serviceModel> 
     <services> 
      <service name="WCF_NameSpace.Service1" behaviorConfiguration="behave"> 
       <endpoint address="" binding="basicHttpBinding" bindingConfiguration="bind" contract="WCF_Trace_2.IService1"></endpoint> 
      </service> 
     </services> 
+0

Không chắc chắn ý của bạn là gì. Bạn có nói rằng nếu tôi tạo ra một dịch vụ (trong cấu hình) sử dụng phần mở rộng này (thông qua một ràng buộc), lỗi sẽ biến mất? – Mark

Các vấn đề liên quan