У меня возникли проблемы с вызовом метода в службе WCF из классического ASP. Ниже приведен код для обслуживания и конфигурации:Вызвать службу WCF от классического ASP
Service
[ServiceContract(Namespace = "http://Plumtree.dartKW.PdfGenerator.Web")]
public interface IPdfGeneratorService
{
[OperationContract]
String GeneratePdf(String xml);
}
public class PdfGeneratorService : IPdfGeneratorService
{
#region IPdfGeneratorService Members
public String GeneratePdf(String xml)
{
return "hello";
}
#endregion
}
Конфигурация
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_PdfGenerator"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
transferMode="Buffered">
<readerQuotas
maxArrayLength="2147483647"
maxStringContentLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"
maxDepth="32" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="serviceBehavior"
name="Plumtree.dartKW.PdfGenerator.Web.PdfGeneratorService">
<endpoint binding="basicHttpBinding"
bindingName="BasicHttpBinding_PdfGenerator"
contract="Plumtree.dartKW.PdfGenerator.Web.IPdfGeneratorService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Я тестировал выше метод в клиенте тестирования WCF и он отлично работает , Вот код из моей страницы осины:
mexMonikerString = "service:mexAddress='http://localhost:51997/PdfGeneratorService.svc/mex'"
mexMonikerString = mexMonikerString + ", address='http://localhost:51997/PdfGeneratorService.svc'"
mexMonikerString = mexMonikerString + ", binding=basicHttpBinding"
mexMonikerString = mexMonikerString + ", bindingNamespace='http://tempuri.org/'"
mexMonikerString = mexMonikerString + ", contract=IPdfGeneratorService"
mexMonikerString = mexMonikerString + ", contractNamespace='http://Plumtree.dartKW.PdfGenerator.Web'"
dim service
service = GetObject(mexMonikerString)
Всякий раз, когда я пытаюсь это я получаю следующее сообщение об ошибке:
System.ServiceModel error '800401e4'
The contract does not have an endpoint supporting the binding specified.
Я попытался прохождения связывающую имя конфигурации BasicHttpBinding_PdfGenerator
в прозвища вместо basicHttpBinding
но Я получаю ту же ошибку. Я также не могу найти другие примеры этой ошибки в Интернете.
Любая помощь будет принята с благодарностью
Спасибо за ваш ответ. Согласно бесчисленным онлайн-демонстрациям, которые я прочитал, мой оригинальный код ДОЛЖЕН работать. Существует проблема где-то с конфигурацией службы или с прописью, которую я создаю. Есть множество примеров того, как люди делают то, что я пытаюсь сделать, к сожалению, похоже, что кто-то сталкивался с той же ошибкой, что и я! Очень расстраивает –
Понял .. Я думаю, если вы не можете заставить свою версию ASP работать, вы можете попробовать, что я делаю. Он легко помещается в любую конструкцию типа HTML/ASP. – Brian