还有一个类似的问题: 使用.NET 4.0在IE中加载.NET UserControls这个问题基本相同,但对于.NET 4.5
这个问题的开头是: 我有一个遗留应用程序,其中有一个UserControl,用作IE中加载的网页中的activex.在.NET 4.0之前,有安全策略和MMC控制台用于创建代码组等.看起来这一切都已经过去了.NET 4.0.
安装.NET 4.5后,似乎解决方法不再有效,并且IE无法加载任何用户控件.我担心这个功能会被完全删除.在这种情况下,在用户安装.NET 4.5之前,我们需要进行一些严肃的重写
一些说明:
有关此功能的消息或信息的任何人?
谢谢
我有一个函数ReplaceParameters,它使用Regex.Replace替换字符串中的值.这一直工作正常,但现在获取replacement-string的api已变为async-only.这是当前代码的一个副本:
public static string ReplaceParameters(string query)
{
var result = Regex.Replace(query, @"(?<parameter>\|\w+\|)", ReplaceParameterEvaluator,
RegexOptions.ExplicitCapture);
return result;
}
private static string ReplaceParameterEvaluator(Match parameterMatch)
{
var parameter = parameterMatch.Groups["parameter"].Value;
return GetReplacement(parameter);
}
private static string GetReplacement(string parameter)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
由于(新)GetReplacement函数现在返回Task而不是字符串:private static async Task<string> GetReplacementAsync(string parameter)ReplaceParameterEvaluator函数不能与MatchEvaluator委托兼容.
Sinc必须在web服务器上运行而不会导致死锁,我不能使用任何脏的异步到同步的黑客,比如这样:(使用.Result) var replacedQuery = Regex.Replace(query, @"(?<parameter>\|\w+\|)", match => ReplaceParameterEvaluatorAsync(match).Result, RegexOptions.ExplicitCapture);
是否可以重写函数来查找所有文本,然后替换它们?可以用某种方式使用Regex.Matches吗?
(说真的,为什么没有Regex.ReplaceAsync函数?)
我们有一个大型应用程序(不幸的是)使用DateTime.Parse(文本)很多.用更好的东西替换DateTime.Parse现在不是一个选项.
最近我升级了Windows(到Windows 10)并开始出现问题.根据https://msdn.microsoft.com/en-us/library/system.datetime.parse(v=vs.110).aspx中的文档,该方法应使用CultureInfo.CurrentCulture作为默认的formatprovider.在我的电脑上似乎并非如此,除非我遗漏了一些明显的东西.
以下代码调用函数两次,首先不更改任何文化设置,然后在文化和ui文化上设置挪威文化.出于某种原因,它能够解析在两种情况下以en-US格式(M/d/yyyy)给出的文本,但是它无法以CultureInfo期望的格式解析日期.
这里发生了什么?我希望我错过了一些明显的东西......
class Program
{
static void Main(string[] args)
{
var norwegianCulture = new CultureInfo("nb-NO");
Console.WriteLine("First");
ParseDates();
Console.WriteLine("\nSecond");
Thread.CurrentThread.CurrentUICulture = norwegianCulture;
ParseDates();
Console.ReadKey();
}
private static void ParseDates()
{
Console.WriteLine($"CultureInfo.CurrentCulture: {CultureInfo.CurrentCulture}");
Console.WriteLine($"CultureInfo.CurrentUICulture: {CultureInfo.CurrentUICulture}");
Console.WriteLine($"{Thread.CurrentThread.CurrentCulture} - CurrentCulture - {Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern}");
Console.WriteLine($"{Thread.CurrentThread.CurrentUICulture} - CurrentUICulture - {Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern}");
var shortDateString = new DateTime(2015, 9, 5).ToShortDateString();
WriteParsedDate(shortDateString);
WriteParsedDate("1/2/2015");
Console.WriteLine();
}
private static void WriteParsedDate(string shortDateString)
{
try
{
var d = DateTime.Parse(shortDateString, CultureInfo.CurrentCulture);
Console.WriteLine($"The text {shortDateString} parsed to Year: {d.Year}, Month: …Run Code Online (Sandbox Code Playgroud) 我有一个在Windows docker容器中运行的ASP.NET站点。我希望能够读取Dockerfile中定义的环境变量。(以及凝视容器时。)
我无法使其工作:
复制:
安装和配置使用Windows容器所需的软件。
创建一个新的(空)文件夹。
在新文件夹中创建两个文件(Dockerfile和default.aspx),其内容如下所述。
导航到空文件夹并运行docker build -t test .(这将创建一个名称为test的容器映像
在交互式容器中启动powershell: docker run -it --rm -e FROM_COMMAND_LINE="From command line" --entrypoint powershell test
现在,您将在容器内的Powershell提示符中。现在,您可以通过获取网页来验证环境变量在网站中不可用:
$(wget http://localhost/default.aspx -UseBasicParsing).Content
Run Code Online (Sandbox Code Playgroud)
结果摘录:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GetEnvironmentVariables
COMPUTERNAME - 540CA54CDB93<br>
PUBLIC - C:\Users\Public<br>
LOCALAPPDATA - C:\Windows\system32\config\systemprofile\AppData\Local<br>
...
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GetEnvironmentVariables - Process
COMPUTERNAME - 540CA54CDB93<br>
PUBLIC - C:\Users\Public<br>
LOCALAPPDATA - C:\Windows\system32\config\systemprofile\AppData\Local<br>
...
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GetEnvironmentVariables - User
Path - C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;<br>
TEMP - C:\Windows\system32\config\systemprofile\AppData\Local\Temp<br>
TMP - C:\Windows\system32\config\systemprofile\AppData\Local\Temp<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GetEnvironmentVariables - Machine
PROCESSOR_REVISION - 3f02<br>
...
Run Code Online (Sandbox Code Playgroud)
请注意,缺少FROM_COMMAND_LINE和FROM_DOCKERFILE。
在PowerShell控制台中,您可以验证变量是否不丢失: …