我有一个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。它甚至没有抛出一个似乎有点奇怪的异常。
我尝试过但没有任何区别的事情:
修改
经过下面各种评论的进一步调查和帮助后,很明显这里的问题不是功能失败,而是与dll功能正在做什么的权限相关问题,即访问内存映射文件。我创建了this follow-up post,它用示例代码复制了核心问题。