在IIS中运行的C#网站中添加新的.cs文件

Bhu*_*ana 5 .net c# iis proxy web-services

我有一个在IIS中运行的C#网站.我在App_code目录下有几个.cs文件.我可以在所有*.aspx.cs和*.ascx.cs文件中引用它们.我没有Visual Studio,我需要手动进行更改.

我现在需要在.aspx.cs文件中使用Web服务.我使用wsdl.exe生成了一个代理类,并将其放在App_code目录下.但是我无法在aspx.cs文件中引用该文件.我收到了错误

编译器错误消息:CS0246:找不到类型或命名空间名称'TestSearchProxy'(您是否缺少using指令或程序集引用?)

代理没有定义任何命名空间,我假设它是默认命名空间.我没有在aspx.cs文件中添加任何"using * ".

有人可以帮我解决这个问题吗?

我尝试的另一种方法是:

我使用csc命令从代理文件生成了一个dll,并将dll放在bin目录下.我仍然无法访问代理类.

Ami*_*tbe 3

关于第一次尝试:

  • 检查 TestSearchProxy 的命名空间并明确使用它:NameSpace.TestSearchProxy
  • 如果这不起作用,请尝试从生成的代理代码中删除命名空间。
  • 尝试擦除 asp.net 临时目录,这将使其从头开始重新编译 app_code 目录。(这通常是您尝试的第一件事,因为 IIS 热部署机制有点不稳定)
    1. 停止 IIS 服务
    2. DEL /S "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files*.*"
  • 检查代理代码中的编译错误,特别是如果您使用的 wsdl.exe 可能来自比目标平台中部署的 IIS/.net 框架更新的框架版本。

关于第二次尝试,(将dll放入bin目录中):

  • 您需要添加对它的引用,可以从 aspx 网站根目录中的 web.config 文件执行此操作:

    <组件>

    <add assembly="程序集名称,版本=1.0.0.0,文化=中性,PublicKeyToken=123456789ABCD1"/>

    </组件>

    或者只是将其添加到 GAC (gacutil -i dllname.dll)。

  • 您还应该检查 dll 是否使用正确的 .net 版本和正确的体系结构 (x86/x64) 进行编译,以避免冲突,因为这可能是旧系统(仅限 4.0 clr/32 位)。