2012-04-19 94 views
4

我们有一个工业系统,可以使用一些C++ DLL给我们提供接口。我写了一个.NET包装器来控制工业系统,然后将这个.NET包装器捆绑到一个ASP .NET Web应用程序中,以便我们可以通过Web控制系统。如何完全信任地部署IIS ASP .NET应用程序?

当我在Visual Studio中使用ASP .NET Development Server运行/调试时,一切正常。当我部署到本地ISS服务器时,我收到C++ DLL的错误信息(我被告知)意味着存在通信故障。

由于IIS应用程序和开发服务器在同一台计算机上,一个可以工作,另一个不可用,所以我确信这是一个权限/安全性错误。我花了好几天的时间来处理应用程序池标识,ASP .NET模拟,文件系统权限等等,都无济于事。 (我也是有点IIS的小白,这不利于的。)

所以,这里的冲压线:

可能有人请解释如何(如果可能的话),以建立一个IIS ASP .NET应用程序,以便它可以使用本地计算机的全部(弹出式,枪支炽热)访问权限运行?我想确保IIS没有拿着任何东西

+0

你能分享这个错误吗? – 2012-04-19 01:19:59

+0

是的。 Marshal.GetLastWin32Error()返回2.这对应于'未找到文件',我相信这意味着(基于文件的?)IPC无法启动。 – wpearse 2012-04-19 01:21:44

回答

6

我不确定是否给予完全信任模式可以解决您的问题,因为错误似乎来自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

+0

谢谢。你是对的 - 它没有解决问题,但它回答了这个问题:) – wpearse 2012-05-02 23:26:36

1

除了在ASP.NET应用程序本身设置完全信任级别之外,请检查IIS用于匿名访问您的网站/ Web应用程序的用户:

Web应用程序 - >属性 - >目录安全性 - >编辑(在身份验证和访问控制)。

(此路径是IIS6。)

默认情况下,IIS与分配切下来的权限,这可能会导致您遇到问题的用户。

+0

谢谢!这里有一个关于IIS7过程的技术文档:http://technet.microsoft.com/en-us/library/cc770966(v=ws.10).aspx – wpearse 2012-04-23 20:57:26

相关问题