密钥授权实施后 WCF 服务 FileNotFound 异常
WCF Service FileNotFound exception after Key authorization implementation
我写了一个WCFAPI。它运行 (运行) 很好。
现在我需要将它打开到 public 访问权限,我尝试在 the example of Ron Jacobs and the accompanying video on endpoint.tv
之后实施 API 密钥验证
这基本上只使用存储在 xml 文件中的 GUID 列表,代表有效的 API 键。授权请求密钥通过查询字符串传递,并在自定义 ServiceAuthorizationManager 中进行验证,如下所示:
protected override bool CheckAccessCore(OperationContext operationContext)
{
return IsValidAPIKey(operationContext);
}
public static bool IsValidAPIKey(OperationContext operationContext)
{
string key = TvinQuery.GetAPIKey(operationContext);
Guid apiKey;
// Convert the string into a Guid and validate it
if (Guid.TryParse(key, out apiKey) && TvinQuery.APIKeys.Contains(apiKey))
{
return true;
}
else
{
return false;
}
}
TvinQuery.APIKeys
是一个简单的 List<string>
,包含 xml 文件中的有效 guid。
解决方案可以编译,但是当我在我的服务器上发布它并尝试访问那里的服务时,我得到文件或程序集 "WCFWebHttp" 或其依赖项之一的 FileNotFound 异常。
原因很明显是web.config服务行为节点中的这部分:
<serviceAuthorization serviceAuthorizationManagerType="WCFWebHttp.APIKeyAuthorization, WCFWebHttp" />
不幸的是,无论是通过我的程序集还是通过我的文件系统进行搜索,无论是通过 Internet 搜索还是通过 nuget 包搜索都没有找到该名称的程序集。
事件查看器和启用的跟踪也没有显示任何进一步的信息。
这是什么?我该如何解决这个错误?这个例子有什么错误或遗漏吗?它在视频中运行得很好,而且是现场演示。 :-?
从这张照片开始:
看起来 WCFWebHttp 是在您使用的示例的源代码中实现的程序集(由于服务器错误,我现在无法下载以确保确定)。
我写了一个WCFAPI。它运行 (运行) 很好。 现在我需要将它打开到 public 访问权限,我尝试在 the example of Ron Jacobs and the accompanying video on endpoint.tv
之后实施 API 密钥验证这基本上只使用存储在 xml 文件中的 GUID 列表,代表有效的 API 键。授权请求密钥通过查询字符串传递,并在自定义 ServiceAuthorizationManager 中进行验证,如下所示:
protected override bool CheckAccessCore(OperationContext operationContext)
{
return IsValidAPIKey(operationContext);
}
public static bool IsValidAPIKey(OperationContext operationContext)
{
string key = TvinQuery.GetAPIKey(operationContext);
Guid apiKey;
// Convert the string into a Guid and validate it
if (Guid.TryParse(key, out apiKey) && TvinQuery.APIKeys.Contains(apiKey))
{
return true;
}
else
{
return false;
}
}
TvinQuery.APIKeys
是一个简单的 List<string>
,包含 xml 文件中的有效 guid。
解决方案可以编译,但是当我在我的服务器上发布它并尝试访问那里的服务时,我得到文件或程序集 "WCFWebHttp" 或其依赖项之一的 FileNotFound 异常。
原因很明显是web.config服务行为节点中的这部分:
<serviceAuthorization serviceAuthorizationManagerType="WCFWebHttp.APIKeyAuthorization, WCFWebHttp" />
不幸的是,无论是通过我的程序集还是通过我的文件系统进行搜索,无论是通过 Internet 搜索还是通过 nuget 包搜索都没有找到该名称的程序集。
事件查看器和启用的跟踪也没有显示任何进一步的信息。
这是什么?我该如何解决这个错误?这个例子有什么错误或遗漏吗?它在视频中运行得很好,而且是现场演示。 :-?
从这张照片开始:
看起来 WCFWebHttp 是在您使用的示例的源代码中实现的程序集(由于服务器错误,我现在无法下载以确保确定)。