小编Ste*_*and的帖子

使用.NET 4.5在IE中加载.NET UserControls

还有一个类似的问题: 使用.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之前,我们需要进行一些严肃的重写

一些说明:

  • 使用.NET 4.5 RC,一切都运行得很好.8-(
  • Fuslogvw(程序集绑定日志查看器)在升级之前按预期运行,但在升级之后它不会记录任何内容.(并且没有加载usercontrol.)
  • 在生产中,controll必须以完全信任的方式运行,但我所有的测试都是通过一个不需要这个的简单控件完成的
  • 有关此功能的消息或信息的任何人?

    谢谢

    user-controls internet-explorer .net-4.5

    14
    推荐指数
    1
    解决办法
    2万
    查看次数

    如何重写Regex.Replace(由于async api)

    我有一个函数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函数?)

    c# regex async-await

    6
    推荐指数
    1
    解决办法
    945
    查看次数

    DateTime.Parse的奇怪行为

    我们有一个大型应用程序(不幸的是)使用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)

    .net c# datetime

    5
    推荐指数
    1
    解决办法
    1481
    查看次数

    Windows的Docker:ASP.NET站点无法读取Dockerfile中定义的环境变量

    我有一个在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控制台中,您可以验证变量是否不丢失: …

    windows asp.net docker

    1
    推荐指数
    1
    解决办法
    948
    查看次数