小编cro*_*sek的帖子

.NET Core RC2 applicationhost.config与ASP.NET .NET 4.6不兼容?

给出包含两个网站的解决方案:

1)基于.NET 4.61的ASP.NET

2).NET Core RC2

启动iisexpress for(2)后,MSVS更新applicationhost.config以包含一些看似与(1)不兼容的额外行.直到iisexpress首次关闭然后尝试启动(1)才会注意到这一点.

不兼容的行是:

<section name="aspNetCore" overrideModeDefault="Allow" />

<add name="AspNetCoreModule" image="C:\Program Files (x86)\Microsoft Web Tools\AspNetCoreModule\aspnetcore.dll" />

<add name="AspNetCoreModule" />
Run Code Online (Sandbox Code Playgroud)

启动(1)时,会出现一个对话框,指出"IISExpress无法启动"并写入一个事件:

由于配置问题,无法加载模块DLL"C:\ Program Files(x86)\ Microsoft Web Tools\AspNetCoreModule\aspnetcore.dll".当前配置仅支持加载为AMD64处理器体系结构构建的映像.数据字段包含错误编号.要了解有关此问题的详细信息,包括如何解决此类处理器体系结构不匹配错误,请参阅http://go.microsoft.com/fwlink/?LinkId=29349.

可能的解决方案?

A)在启动之前删除多余的行(1),如何自动实现?

B)为每个网站使用不同的applicationhost.config,是否有环境变量来设置它?

C)直接修复事件日志中报告的问题.不知何故,它在启动.NET Core RC2站点时起作用,这很奇怪.

D)使用恰好位于不同目录中的单独解决方案文件.这是不可取的,因为它是一个相当复杂的解决方案.

asp.net iis-express asp.net-core .net-core-rc2

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

如何使[DebuggerNonUserCode]在简单的测试用例中隐藏调试器的异常?

建立:

1)MSVS 2015,选项 - >调试器 - >"仅我的代码"被选中.

2)此示例代码放在某个类中并在启动期间调用:

    static bool TestIgnoreException()
    {
        Exception ex;
        return TrySomething(out ex);
    }

    [DebuggerNonUserCode] // Prevent exceptions from stopping the debugger within this method. 
    static bool TrySomething(out Exception exOut)
    {
        try
        {
            if (Environment. MachineName.Length != -1)
                throw new Exception("ThrewIt.");

            exOut = null;
            return true;
        }
        catch (Exception ex)
        {
            exOut = ex;
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

3)启动调试器

预期的结果是TestIgnoreException()以静默方式运行并返回false.

实际结果是调试器在TestIgnoreException()中停止,即使在该范围内不应该处理异常.

在此输入图像描述

4)也使用[DebuggerHidden]重新尝试,结果相同.

动机:

动机是针对某些不受您控制的API不提供"尝试"方法而仅通过使用异常指示失败的情况.

众多此类示例中的一个是.NET TcpClient.Connect(主机,端口).假设一个程序总是在启动期间测试一些连接,调试器不应该每次都停在这个特定的代码段上.

使用标准的"抛出时中断"异常复选框并不好,因为它按类型全局工作.它无法配置为在本地工作.检查代码的其他开发人员也应该自动跳过异常.

c# debugging attributes exception visual-studio-2015

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

C#中"using"指令关键字的替代方案?

我刚刚在NDC观看了Bob Martin的一集,他说在页面顶部的C#中使用"using"指令很糟糕,因为它们在组件之间创建/暗示紧密耦合.

在没有添加项目引用和using语句的情况下,有什么方法可以使用外部.dll?

我记得V6曾经让你通过ProgId的字符串创建一个对象 - 我不确定这是我正在寻找的技术,但它是一个不需要项目引用的语言示例DLL.

编辑:这是会议的链接.对不起我在演讲中没有确切的引用或分钟,我记得.

c# coupling decoupling

5
推荐指数
3
解决办法
1917
查看次数

如何处理/解析使用WebClient调用的WCF Rest的故障

我有兴趣在WCF REST服务客户端中正确处理故障.在使用任何WebClient,WebRequest或HttpWebRequest时,如下所示:

   try 
   {
      HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri);
      req.Method = "GET";
      HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
      // ...process...
   } 
   catch (WebException wex)
   {
      string exMessage = wex.Message;
      if (wex.Response != null)
      {
         using (StreamReader r = new StreamReader(wex.Response.GetResponseStream()))
            exMessage = r.ReadToEnd();

         // the fault xml is available here, really need to parse? and how?
      }
   }
Run Code Online (Sandbox Code Playgroud)

我可以在Fiddler中看到我收到格式良好的XML"Fault"消息(默认是因为includeExceptionDetailInFaults = true,或者是通过IErrorHandler :: ProvideFault的自定义错误).但是,仅抛出500个内部错误WebException.

我宁愿在客户端上抛出一个FaultException,或者至少能够解析Fault.我们没有使用"服务参考",因此没有代理(如果有更好的方法为REST WCF客户端执行此操作,请更正我).是否有一种通用的方法来解析该错误,无论其实际类型为T(FaultException),还是将特定类型作为起点?谢谢!

根据degorolls的回答:

public SomeContract ThrowErrorTest()
{
    try
    {
        return TryCatchExtractAndRethrowFaults<SomeContract>(() =>
        {
            // Call web service using WebClient, HttpWebRequest, …
Run Code Online (Sandbox Code Playgroud)

rest wcf client exception fault

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

无法添加文件权限需要将SQL Server 2012文件重定位到单独的驱动器

安装新的SQL Server 2012实例后,我希望将数据库文件移动到单独的驱动器.当我在目标位置执行文件 - >属性,然后单击安全 - >编辑 - >添加 - >高级,选择位置=机器名,然后单击查找,我只看到与分析服务相关的表单:

SQLServerMSASUser$MachineName$InstanceName
Run Code Online (Sandbox Code Playgroud)

我认为我真正需要的权限是我能看到的那个存在于默认的C:驱动器位置:

MSSQL$InstanceName
Run Code Online (Sandbox Code Playgroud)

当我试图直接输入它时,它是无法识别的.如果我将目录设置为"Everyone",然后将数据库移动到那里(使用恢复),它将工作并在mdf文件上显示上述权限.当父目录未显示为列表中的可用条目时,如何在父目录上设置该权限.谢谢!

file-permissions sql-server-2012

5
推荐指数
3
解决办法
2万
查看次数

如何在 ASP.NET 请求中使用 System.Net.HttpRequestHeader 枚举?

在 WCF (System.Net.WebHeaderCollection) 中,可以使用 System.Net.HttpRequestHeader 枚举或标头字符串检索标头值:

WebOperationContext.Current.IncomingRequest.Headers[httpRequestHeaderEnum] 
// or
WebOperationContext.Current.IncomingRequest.Headers.Get(rawHeaderString)
Run Code Online (Sandbox Code Playgroud)

但在 ASP.NET 中,标头位于仅接受标头字符串的 NameValueCollection 中:

 HttpContext.Current.Request.Headers[rawHeaderString]
Run Code Online (Sandbox Code Playgroud)

为了将枚举用于 ASP.NET,从枚举 System.Net.HttpRequestHeader 到其标头字符串的映射在哪里?

asp.net http-headers c#-4.0

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

当物理> 95%时,为什么.NET不会将未使用的内存释放回操作系统?

我们正在测试4进程WCF IIS应用程序(x3发行版本)的内存稳定性(泄漏),只需每隔1秒ping一次,就像Load Balancer一样.如果服务器上没有运行其他任何东西,它运行正常> 12小时.

但是,如果我们故意减少总可用内存(修复页面,减少物理内存,启动其他应用程序)并将物理内存使用率提高到97%并将其保留5分钟或更长时间,Windows通常会检测到这种情况并关闭一个的过程.请注意,如果将内存推至97%(使用固定页面文件),它也会失败.

但是,使用RedGate工具分析其中一个幸存进程的内存占用情况,可以看出:

RedGate摘要选项卡

由于请求只是稳定的ping,因此当服务器缺乏时,.NET似乎没有实际的理由来保存269MB的可用内存.大约50%的IIS进程似乎处于此状态(~1.8GB).

该应用程序是针对.NET 4.0编译的,gcServer为true.IIS Gate检查设置为0%(minFreeMemoryPercentageToActivateService ="0"),尽管我们可能会将其设置为2%.

服务器是2008 R2,~4GB物理4GB固定页面,用4.0然后再测试4.5.1(无所谓).

@atanamir对类似问题回答是:

"一旦物理内存不足,.NET将把它的堆释放回操作系统."

任何人都知道该索赔的任何参考?它可能是特定版本的吗?

参考文献:

c# iis wcf garbage-collection memory-management

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

当工作线程非竞争地写入本地或类变量时,是否需要锁定或易失性?

对于下面的情况,当工作线程之间没有写入竞争时,仍然需要锁或易失性?如果"G"不需要"Peek"访问,则答案有任何差异.

class A 
{
   Object _o; // need volatile (position A)?
   Int _i;    // need volatile (position B)?

   Method()
   {
      Object o;
      Int i;

      Task [] task = new Task[2]
      {
         Task.Factory.StartNew(() => { 
              _o = f1();   // use lock() (position C)?
              o  = f2();   // use lock() (position D)?
         } 
         Task.Factory.StartNew(() => { 
              _i = g1();   // use lock() (position E)?
              i  = g2();   // use lock() (position F)?
         }          
      }

      // "Peek" at _o, _i, o, i (position …
Run Code Online (Sandbox Code Playgroud)

c# variables locking volatile task

4
推荐指数
2
解决办法
574
查看次数