C# IIS 7如何从Bin文件夹加载程序集
在.NET解决方案中,我使用自定义类进行翻译。 翻译框架的主要思想 将带有翻译的文件放置在部件附近的文件夹中 当它从windows窗体应用程序调用时,所有这些都可以正常工作。 但当我从web服务调用它时,它不起作用 我通过VisualStudio2010和bult在调试器中调试web服务。 我看到ASP.NET开发中的内置从 C:\Windows\Microsoft.NET\Framework\v4.0.30319\临时ASP.NET文件\ 而且找不到我的翻译文件夹 因此,请建议在这种情况下该怎么做 我在IIS7下测试过它也不起作用 如何加载程序集的示例代码:C# IIS 7如何从Bin文件夹加载程序集,c#,.net,asp.net,webservice-client,.net-assembly,C#,.net,Asp.net,Webservice Client,.net Assembly,在.NET解决方案中,我使用自定义类进行翻译。 翻译框架的主要思想 将带有翻译的文件放置在部件附近的文件夹中 当它从windows窗体应用程序调用时,所有这些都可以正常工作。 但当我从web服务调用它时,它不起作用 我通过VisualStudio2010和bult在调试器中调试web服务。 我看到ASP.NET开发中的内置从 C:\Windows\Microsoft.NET\Framework\v4.0.30319\临时ASP.NET文件\ 而且找不到我的翻译文件夹 因此,请建议在这种情况下该怎
if (languageSettings == null)
{
TraceIt(assembly.Location);
string strPath = Path.Combine(Path.GetDirectoryName(assembly.Location), "Language.config");
TraceIt(strPath);
languageSettings = new LanguageSettings(strPath);
if (!languageSettings.LoadSettings())
{
languageSettings.CurrentLanguage = DefaultLocale;
languageSettings.SaveSettings();
}
}
在web应用程序中,程序集将位于
bin
文件夹中。假设您的配置文件位于应用程序的根目录上一级,您可以使用Server.MapPath
获取其路径,如下所示(您需要参考System.Web)
在web应用程序中,程序集将位于
bin
文件夹中。假设您的配置文件位于应用程序的根目录上一级,您可以使用Server.MapPath
获取其路径,如下所示(您需要参考System.Web)
在web环境中,通常在web.config中设置指向语言数据文件夹的绝对路径的键,而不是依赖于执行文件夹中的查找:
<appSettings>
<add key="Languages" value="D:\Data\Languages" />
</appSettings>
在web环境中,通常在web.config中设置指向语言数据文件夹的绝对路径的键,而不是依赖于执行文件夹中的查找:
<appSettings>
<add key="Languages" value="D:\Data\Languages" />
</appSettings>
您可以尝试从类型中获取位置。例如:
string strPath =
Path.Combine(
Path.GetDirectoryName(typeof(LanguageSettings).Assembly.Location),
"Language.config");
您可以尝试从类型中获取位置。例如:
string strPath =
Path.Combine(
Path.GetDirectoryName(typeof(LanguageSettings).Assembly.Location),
"Language.config");
看看John Sibly给出的解决方案:
我认为这更符合您的要求;)由于它在两种情况下都能工作(win和web)请看一下John Sibly给出的解决方案:
我认为这更符合您的要求;)由于它在两种情况下都能工作(win和web)这是可能的,但相同的代码必须在IIS和windows窗体以及windows服务下工作,如何确定代码在IIS下工作?这是可能的,但相同的代码必须在IIS和windows窗体以及windows服务下工作,如何确定代码在IIS下工作?可以,但我也必须在windows服务下运行相同的代码。。所以问题存在:如何确定代码是从iis调用的?检查
HttpContext.Current
是否为null
,如果是,请使用现有代码。如果没有,请运行这个。这是可以的,但我也必须在windows服务下运行相同的代码。。所以问题存在:如何确定代码是从iis调用的?检查HttpContext.Current
是否为null
,如果是,请使用现有代码。如果没有,请运行此。