我已经主持了一个Rest WCF
到我的IIS 7
. 我测试了一切,除了导入dll
. 我的实例类代码如下:
[OperationContract, WebInvoke(Method = "GET", UriTemplate = "/getname?name={name}&age={age}", ResponseFormat = WebMessageFormat.Json)]
bool getname(string name, string age);
[OperationContract, WebInvoke(Method = "GET", UriTemplate = "/getcallfromdll?name={name}&age={age}", ResponseFormat = WebMessageFormat.Json)]
bool getcallfromdll(string name, string age);
而上述方法的定义是:
public string getname(string name, int len)
{
return "It's working";
}
public string getcallfromdll(string name, int len)
{
return UnsafeNativeMethods.getvalue(name, len); //Unsafe.. is a internal structure
}
internal static class UnsafeNativeMethods
{
const string _dllLocation = "school.dll";
[DllImport(_dllLocation, CallingConvention = CallingConvention.Cdecl)]
public static extern bool getvalue(string name, String len);
}
尝试运行时localhost:8085/service.svc/getname?name=kajn&len=21
:它返回"It's working"
,这是正确的,但每当我尝试调用时localhost:8085/service.svc/getcallfromdll?name=kajn&len=21
:它返回The server encountered an error processing the request. See server logs for more details.
我搜索了它,不知何故我知道这一切都是由于服务而发生的,无法找到DLL
. 为了解决这个问题,我尝试将我的 dll 放在以下位置,但它没有帮助我:(:
- 系统32/inetsrv
- SysWOW64/inetsrv
- 在 bin 文件夹中
- 我还将项目所在的文件夹放在同一个文件夹中。
但没有什么对我有用。请建议我一个解决方案。
注意:dll 没有问题,因为我从自托管的 WCF 应用程序调用 dll 方法并且它运行良好。当时我把我的dll放入bin/debug
文件夹中。