如何在ASP.NET Web服务中使用fopen为文件授予非托管DLL的WRITE权限?

时间:2013-05-23 07:58:30

标签: asp.net web-services iis dllimport unmanaged

我编写了一个XML Web服务,该服务使用非托管dll运行,该dll创建了一个用于写入的文件。

但是当我的非托管dll尝试将_wfopen WRITE 某些东西用于现有文件时,会导致安全问题:访问被拒绝!然后_wfopen收到NULL回来。

我最初使用_wfopenr+b来访问文件。要测试它拥有的权限, 我尝试将其更改为使用rb(仅读取文件),然后文件成功打开。这意味着我可以使用READ访问权限访问该文件。

我还发现通过C#代码直接访问文件不会导致此问题。 (例如,如果我使用File.Create等)。

我正在运行的操作系统是带有IIS 5.1的WinXP Professional SP3。因此,应该在这样的系统中没有正确设置目录或文件权限。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

经过大量 Code Fighting 后,我得出结论:这可能不是代码许可问题

所以我尝试在IIS中配置我的Web服务。 我终于发现配置属性页的ASP.NET选项卡可以解决这个问题。

ASP.NET配置页面上,转到Application标签,然后检查Impersonate中的Identity Settings,并输入用户名/密码和我的计算机登录数据。

之后,一切顺利,问题解决了。

我希望这对那些和我有同样问题的人有所帮助。

感谢您的任何建议!