当前位置: 首页 > 知识库问答 >
问题:

从经典ASP中的C#dll调用Web服务

闻人英韶
2023-03-14

我是一名windows开发人员,对web应用程序和ASP知之甚少。我正在尝试为某人创建一个C#dll(它正在进行Web服务调用),这是从一个经典的ASP应用程序调用的。

这一切都是从一个WinForms测试应用程序开始的,该应用程序成功地加载了WSDL并调用了该web服务。现在的需求是获取测试应用程序功能,将其移动到dll,并从ASP应用程序调用该dll。我天真地将appconfig文件留在那里,当调用该dll时,他得到了一个众所周知的错误:

找不到引用合约服务1的默认终结点元素。ServiceModel客户端配置部分中的MyService。这可能是因为找不到应用程序的配置文件,或者在客户端元素中找不到与此约定匹配的endpoint元素。

我知道经典asp没有配置文件——我读了很多关于它的帖子,大多数相关帖子都提到使用BasicHTTPBinding并动态提供endpoint地址。我该怎么做?有什么例子吗?

我看到了这个答案:

我所需要做的就是创建一个BasicHTTPBinding,并在运行中提供一个endpoint地址。然后使用创建的绑定和终结点地址创建Web服务的新实例。

但我不知道怎么做。

这是用于winforms应用程序的appconfig:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IMyService">
                <security mode="Transport">
                    <transport clientCredentialType="Certificate" proxyCredentialType="None"
                        realm="" />
                </security>
            </binding>
            <binding name="BasicHttpBinding_ICustomerService" 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="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://MyService.svc"
            behaviorConfiguration="custom" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IMyService" contract="MyService.IMyService"
            name="BasicHttpBinding_IMyService" />
    </client>


  <behaviors>
    <endpointBehaviors>
      <behavior name="custom">
        <customInspector />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <extensions>
    <behaviorExtensions>
      <add name="customInspector" type="CustomBehaviors.CustomBehaviorExtensionElement, CompeteDataServiceTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
    </behaviorExtensions>
  </extensions>


</system.serviceModel>

共有1个答案

颜乐
2023-03-14

您需要通过代码配置服务,因为在这种情况下没有配置文件。请参阅代码中的配置WCF服务。

 类似资料:
  • 问题内容: 我正在将Java用于小型应用程序。这是对现有MFC项目的重写。我需要更改一个现有的dll,以启用使用JNI从Java进行的访问。所有这些Java知识对我来说都是新手,因此当我阅读其他论坛帖子时遇到了一些麻烦,并且感觉比较密集。在现有的dll中,我具有如下功能: 愚蠢的提问时间。如何正确设置它以被Java调用? 我尝试了这个: 我包括jni.h,一切编译正常。但是,当我从Java调用它时

  • 问题内容: 我已经继承了一些经典的ASP代码,并且需要一个可以实例化并在服务器端运行的JSON库,以与JavaScript编码的服务器端ASP配合使用。 我怎样才能做到这一点? 问题答案: 对于编写/输出JSON,我相信aspjson项目是一个不错的选择。在这里讨论在ASP“经典”中解析JSON: 在经典ASP中有什么好的解析JSON的库吗? 在该线程中,Chris Nielsen有一个在服务器端

  • 问题内容: 我有一个用c#创建的dll,在调用时会执行一些数据库操作。我必须将一些参数从Java应用程序传递到dll中的方法。关于如何执行此操作的任何想法。 要么 通过Java应用程序在c#中调用方法的更好的主意吗? 谢谢 编辑:我的Java应用程序是AVAYA平台的标准Dialogue Designer应用程序,并且我已经开发了一个仅在.net SDK上工作的C#应用​​程序。所以我需要将数据从

  • 我在visual studio中创建了一个dll(我没有使用任何win\u API函数)。我想从我生成的android.apk文件中调用这个dlll,但在运行这个文件时,我遇到了这个错误。 "java.lang.无法从加载器加载Testdll1dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/], nativeLibrary

  • 我想从作为web服务使用的cfc中调用cfc。web服务只是向调用者返回一个状态通知,但是我需要启动另一个cfc来启动一些进程,打开一个ftp获取一个文件并将其下载到我们的服务器。目前我得到了这个错误。操作GetFile原因550无法打开文件。详细错误:550无法打开文件。.消息FTP GetFile操作过程中出现错误。打开文件。. 当我从一个url直接调用流程cfc或从另一个页面调用时,它工作正

  • 我正在尝试为我们网站上运行在单独服务器上的经典asp部分实现单点登录。我已经使用simpleSAMLphp在另一台服务器上实现了php SSO。我正在尝试使用shibboleth来实现asp/IIS的经典功能。我已经到达了我们身份提供者的登录页面,但一旦我进行身份验证,我就会卡在/SAML2/POST上,并且有一个网页说找不到我服务器的ip地址。我曾尝试实施在论坛中找到的修复,但仍然没有取得任何进