現在、私たちはかなり広範なモジュールをローカライズしようとしていますが、簡単な管理のために単一のresxを使用するものは、しかし、イベントビューアーにログメッセージが残っています(コードの下に)相対仮想パス 'x.resx'はここでは許可されていません
私も追加する必要がありますhttpcontext.current.server.mappathを使用することはできません。httpcontextがない場所でも機能が使用されます。
コード:
Public Shared Function GetString(ByVal key As String, ByVal ParamArray params As String()) As String
Dim SharedResourceFolder As String = "~/App_GlobalResources/"
Dim myStr As String = Nothing
If CultureInfo.CurrentCulture.Name <> "en-GB" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name & ".resx")
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name.Substring(0, 2) & ".resx")
End If
End If
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources.resx")
End If
If myStr IsNot Nothing AndAlso myStr <> "" Then
Return String.Format(CultureInfo.CurrentCulture, myStr, params)
End If
Dim res As String = Localization.GetString(key, "Resources.resx", "en-GB")
If String.IsNullOrEmpty(res) Then
Return Nothing
End If
Return String.Format(CultureInfo.InvariantCulture, res, params)
End Function
エラーメッセージ:
System.ArgumentExceptionの:相対 仮想パス 'sharedresources.resxは' ここでは許可されていません。 システムで System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath)で System.Web.VirtualPath.FailIfRelativePath() でSystem.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath、ブールpermitNull)で DotNetNuke.CommonでDotNetNuke.Services.Localization.Localization.GetResourceFileCallBack(CacheItemArgs cacheItemArgs)で System.Web.Hosting.HostingEnvironment.MapPathで.Web.Hosting.HostingEnvironment.MapPath(VirtualPath virtualPath)(文字列 virtualPath) .Utilities.DataCache.GetCachedData [TObject](CacheItemArgs cacheItemArgsは、 CacheItemExpiredCallback は、任意のヘルプ
UPDATE感謝cacheItemExpired、ブール storeInDictionary)
:物理パスに変更
は、DNNのコア内に私の問題を引き起こしました仮想パスに戻ってコードの行を変更する他の場所でモジュール内で問題が解決される
私はこの問題を見つけるのに役立ちました。私はこの問題を見つけるのに役立ちました。本当にすべてのことを説明する方法はありません。 – Matt