DllImport - 在部署到IIS时,函数不在ASP.Net中返回正确的值

时间:2013-11-27 10:38:38

标签: c# asp.net iis com dllimport

我有一个Web服务,我需要在一些非托管代码中调用函数,我导入dll如:

     class myClass
    {
      [DllImport("mydll.dll")]
      public static extern int FetchMyData(int DataType, int DataIndex);
    }

网页对WebService进行AJAX回调,调用导入的函数,如:

    [WebMethod]
    public int FetchData(int IndexValue)
    {
      return  myClass.FetchMyData(DATA_TYPE, IndexValue);
    }

当我使用开发IIS Express从VisualStudio运行它时,一切正常,函数返回一个正整数。但是,当我部署到本地IIS时,该函数始终返回-1。它甚至没有抛出一个似乎有点奇怪的异常。

我尝试过但没有任何区别的事情:

  • 将“IIS AppPool \ DefaultAppPool”添加到具有完全权限的父目录
  • 将“启用32位应用程序”属性设置为 True

修改

经过下面各种评论的进一步调查和帮助后,很明显这里的问题不是功能失败,而是与dll功能正在做什么的权限相关问题,即访问内存映射文件。我创建了this follow-up post,它用示例代码复制了核心问题。

0 个答案:

没有答案