我们有一个工业系统,可以使用提供给我们的一些 C++ DLL 进行接口(interface)。我编写了一个 .NET 包装器来控制工业系统,然后将这个 .NET 包装器捆绑到一个 ASP .NET Web 应用程序中,这样我们就可以通过 Web 控制系统。
当我使用 ASP .NET 开发服务器在 Visual Studio 中运行/调试时,一切正常。当我部署到本地 ISS 服务器时,我收到来自 C++ DLL 的错误,(有人告诉我)这意味着存在通信故障。
因为 IIS 应用程序和开发服务器在同一台机器上,一个工作而另一个不工作,我确信这是一个权限/安全错误。我花了几天时间摆弄应用程序池标识、ASP .NET 模拟、文件系统权限等,但无济于事。 (我也有点 IIS-noob,这没有帮助。)
所以,这里是妙语:
有人可以解释一下如何(如果可能的话)设置一个 IIS ASP .NET 应用程序,以便它可以在对本地机器的完全(全力以赴,枪林弹雨)访问的情况下运行吗?我想确保 IIS 不会因为任何事情阻碍应用程序。
最佳答案
我不确定提供完全信任模式是否会解决您的问题,因为错误似乎来自 C++,并且文件系统级别的某种权限丢失或文件本身丢失。
无论如何,要回答您的问题,您可以使用 web.config 设置完全信任模式,将以下部分添加到您的 web.config:
<system.web>
<securityPolicy>
<trustLevel name="Full" policyFile="internal"/>
</securityPolicy>
</system.web>
更多细节可以在这里看到:http://msdn.microsoft.com/en-us/library/wyts434y.aspx
关于asp.net - 如何部署完全信任的 IIS ASP .NET 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220364/