我正在尝试为 redis 实现 Azure 缓存来管理我的应用程序中的会话。这是在本地主机上工作。托管到 IIS 后,webconfig 文件中出现编译错误。
我在 azure 门户中为 redis 创建了 azure 缓存。我已经对代码进行了相应的更改。当我在本地主机上使用源代码运行时,它正在工作。托管到 IIS 后出现以下错误
"Provider 必须实现类
System.Web.SessionState.SessionStateStoreProviderBase
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="myhostname" accessKey="Key1" ssl="true" />
</providers>
</sessionState>
Run Code Online (Sandbox Code Playgroud)
添加的模块如下
<system.webServer>
<modules>
<remove name="Session" />
<add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
</modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我希望会话值存储在 redis 的 azure 缓存中。但是在 IIS 上托管后它不起作用。
我已经创建了天蓝色存储帐户。我已经创建了文件存储。我已经生成了 SAS 令牌。当我尝试使用 sas 令牌访问文件时,显示错误“远程服务器返回错误:(403) 禁止。”
我能够生成 SAS 令牌。当我尝试访问文件存储中的文件时抛出异常。我尝试在浏览器上复制并粘贴网址,但会引发错误“
<Error>
<Code>AuthorizationResourceTypeMismatch</Code>
<Message>
This request is not authorized to perform this operation using
this resource type. RequestId:4cbc0cbe-401a-00c2-2edf-
202bc4000000 Time:2019-06-12T05:26:39.4816687Z
</Message>
</Error>"
Run Code Online (Sandbox Code Playgroud)
静态字符串 GetAccountSASToken()
SharedAccessAccountPolicy policy = new
SharedAccessAccountPolicy()
{
Permissions = SharedAccessAccountPermissions.Read |
SharedAccessAccountPermissions.Write |
SharedAccessAccountPermissions.List,
Services = SharedAccessAccountServices.File,
ResourceTypes = SharedAccessAccountResourceTypes.Service,
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24),
Protocols = SharedAccessProtocol.HttpsOnly,
};
Run Code Online (Sandbox Code Playgroud)
XDocument objdoc = XDocument.Load(filepath+ sasToken);
Run Code Online (Sandbox Code Playgroud)
将文件加载到 XDocument 后,我必须执行一些读写操作。请帮助查找我正在做的错误