【问题标题】:How to use native DLL in a deployed website (IIS 7)如何在已部署的网站中使用本机 DLL (IIS 7)
【发布时间】:2014-01-09 14:18:48
【问题描述】:

我正在使用来自 c# Web 服务的 32 位本机 DLL。在带有 IIS express 的 VS 中,一切都可以正常工作。但是,当我将站点部署到 IIS 托管提供商 (IIS 7) 时,对 DLL 的调用(使用平台调用)不起作用(没有错误,它甚至不会从调用中返回,并且 Web 服务会突然终止)。但是,通过PageMethod错误函数通知客户端:“无法加载DLL访问被拒绝(HRESULT异常:0x80070005(E_ACCESSDENIED))”

由于提供程序 IIS 运行 64 位模式,我要求他们将我的进程更改为 32 位,但这没有任何区别。 我需要做一些特殊的事情才能在 IIS 7 上使用本机 DLL 吗?我必须先向服务器注册本机模块才能使用它们吗?对调用 DLL 时的奇怪行为有何解释?

谢谢

【问题讨论】:

    标签: asp.net web-services iis dll


    【解决方案1】:

    您可能已经搜索过,但似乎已经问过这个问题:请参阅此处的SO Question,但归结为将 dll 放在正确的位置并设置 PATH 变量。

    【讨论】:

    • 感谢您的回复。我的本机 DLL 在 /bin 文件夹中。我确实尝试通过指定完整路径来加载 DLL,但这并没有帮助。奇怪的是,即使我删除了 DLL,我也没有收到任何错误。我在调用导入的DLL函数之前和之后立即放置了调试日志,日志显示它到达调用之前的点,但从未到达调用之后的点,此时Web服务终止,但是,通过PageMethod通知客户端错误函数:“无法加载 DLL 访问被拒绝(HRESULT 异常:0x80070005 (E_ACCESSDENIED))”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    相关资源
    最近更新 更多