Проблема: при попытке из программного кода ASP.Net обратиться с запросом к веб-сервису (asmx) возникает ошибка:
Source Error:
Stack Trace:
Данная ошибка означает, что в файле web.config неверно задана ветка для обращения к веб-сервису <system.serviceModel><client><endpoint>. Откройте конфигурационный файл и проверьте, какие параметры заданы в указанной ветке. Пример:
Обратите внимание на параметр "contract". Если возникает подобная ошибка, то данного параметра либо нет, либо он указан неверно. Он должен содержать название "контракта" по которому приложение будет взаимодействовать с указанным веб-сервисом. В коде самого приложения должен быть реализован данный тип контракта, например, в стандартной ASP-папке App_WebReferences (в виде файлов svcmap, disco, wsdl, svcinfo):
Server Error in '/' Application.
Attribute 'contract' is required on
element 'endpoint'.
Description: An unhandled exception occurred during the execution
of the current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.Configuration.ConfigurationErrorsException:
Attribute 'contract' is required on element 'endpoint'.
Source Error:
The
source code that generated this unhandled exception can only be shown when
compiled in debug mode. To enable this, please follow one of the below steps,
then request the URL:
1. Add
a "Debug=true" directive at the top of the file that generated the
error. Example:
<%@
Page Language="C#" Debug="true" %>
or:
2) Add
the following section to the configuration file of your application:
<configuration>
<system.web>
<compilation
debug="true"/>
</system.web>
</configuration>
Note
that this second technique will cause all files within a given application to
be compiled in debug mode. The first technique will cause only that
particular file to be compiled in debug mode.
Important:
Running applications in debug mode does incur a memory/performance overhead.
You should make sure that an application has debugging disabled before
deploying into production scenario.
|
Stack Trace:
[ConfigurationErrorsException: Attribute 'contract' is required on element 'endpoint'.] System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult) +812598 System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject) +814360 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) +826826 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) +826826 System.Configuration.BaseConfigurationRecord.GetSection(String configKey) +69 System.Configuration.ConfigurationManager.GetSection(String sectionName) +140 System.ServiceModel.Activation.AspNetEnvironment. UnsafeGetSectionFromConfigurationManager(String sectionPath) +42 System.ServiceModel.Configuration.ConfigurationHelpers. UnsafeGetAssociatedSection(ContextInformation evalContext, String sectionPath) +40 System.ServiceModel.Description.ConfigLoader.LookupChannel(ContextInformation configurationContext, String configurationName, ContractDescription contract, EndpointAddress address, Boolean wildcard, Boolean useChannelElementKind, ServiceEndpoint& serviceEndpoint) +141 System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address) +133 System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress) +409 System.ServiceModel.ConfigurationEndpointTrait`1.CreateSimplexFactory() +16661296 System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait) +27 System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef() +546 Account_Login.ViewQueryLogin() +924 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +12308266 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +12307881 System.Web.UI.Page.ProcessRequest() +119 System.Web.UI.Page.ProcessRequest(HttpContext context) +99 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication. IExecutionStep.Execute() +913 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165 |
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET
Version:4.0.30319.34212
Данная ошибка означает, что в файле web.config неверно задана ветка для обращения к веб-сервису <system.serviceModel><client><endpoint>. Откройте конфигурационный файл и проверьте, какие параметры заданы в указанной ветке. Пример:
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="AuthServiceSoap" 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="Transport"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="https://192.168.0.55:83/auth1/Services/AuthService.asmx" binding="basicHttpBinding" bindingConfiguration="AuthServiceSoap" contract="SSOAuthService.AuthServiceSoap" name="AuthServiceSoap" /> </client> </system.serviceModel>
Обратите внимание на параметр "contract". Если возникает подобная ошибка, то данного параметра либо нет, либо он указан неверно. Он должен содержать название "контракта" по которому приложение будет взаимодействовать с указанным веб-сервисом. В коде самого приложения должен быть реализован данный тип контракта, например, в стандартной ASP-папке App_WebReferences (в виде файлов svcmap, disco, wsdl, svcinfo):
(с) Ella S.
Комментариев нет:
Отправить комментарий