小编Meh*_*rad的帖子

在异步控制器操作中发生错误时重定向用户

我有一个ASP.NET MVC 4 Web应用程序,它通过WCF服务从数据源中检索数据.

我已经设置了大多数控制器Async和后续方法Task.

我遇到了一个问题.如果我的代码中发生异常,则正在加载的页面将继续加载,并在最后超时显示IIS错误页面.

我有一个友好的错误信息设置,并适用于sync行动但不适用async.即使可能在不同级别发生异常,操作也会继续运行.我尝试将该AsyncTimeout属性应用于控制器操作,但没有运气,页面只是长时间加载.

任何想法如何在我的代码中处理这个问题,最好是在全局类型级别,并在async控制器操作出现问题时将用户引导到错误页面?

c# asp.net-mvc wcf asynchronous task

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

Visual Studio 2013 + Business Intelligence SSDT中缺少报表服务器模板

前几天我安装了Microsoft SQL Server数据工具 - 面向Visual Studio 2013的商业智能(SSDT:替换BIDS),并开始在VS2013中使用报告功能.

使用报表服务器项目向导模板成功创建了一个项目.

但是,稍后我需要SQL Server 2014,然后我下载并安装了开发人员版.(如果这可能导致问题)

现在VS2013中缺少报表服务器项目模板,我不能简单地将它们带回来.

现在我的VS2008具有我想要的功能: 在此输入图像描述

但在VS2013 Professional中没有它们的痕迹: 在此输入图像描述

有什么建议?

我采取的其他不成功的方法

  • 修复了SQL Server数据服务.
  • 尝试卸载此服务导致了许多问题,包括无法安装此服务,因为所有框都在安装过程中被勾选并变灰,并且不能再超过此级别.
  • 尝试删除所有相关组件,这可能让我再次重新安装Visual Studio 2013的SSDT-BI但没有帮助.这是我执行此操作的Microsoft指南:删除SQL Server数据工具组件
  • 从安装介质修复了整个SQL Server 2014(64位)安装.
  • 尝试使用devenv.exe /InstallVSTemplates此Microsoft指南/ InstallVSTemplates(devenv.exe)检索未注册的VS2013模板.

visual-studio-2008 visual-studio-2013 sql-server-2014 sql-server-data-tools

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

Log4Net:如何将程序内部的日志结果输出到变量中?

我正在尝试学习使用Log4Net来改进我的程序中的日志记录技术。我已经阅读了 Log4Net 网站中提供的文档,但是我有这些问题。

这是Log4Net网站上的示例程序中显示的最简单的输出BasicConfigurator.Configure()。

0    [main] INFO  MyApp        - Entering application.
36   [main] DEBUG Com.Foo.Bar  - Did it again!
51   [main] INFO  MyApp        - Exiting application.
Run Code Online (Sandbox Code Playgroud)

我的程序已经有一个窗格(在调试模式下)来显示程序的流程,该流程在多次异步尝试中循环。所以当我运行它时,我可以看到程序的流程(典型的批量调试方法)。

在这个级别,据我所知,通过使用 Log4Net,我可以收集那些时刻的日志,这些日志可以附加到许多不同的输出方法中,例如控制台、外部文件、数据库等。这导致代码加倍. 在每个测试点中,一行用于将日志输出到 UI,另一行用于 Log4Net 的日志记录。

是否有任何方法可以将其中一个附加程序的内容(例如上面显示的附加程序)输出到字符串或类似类型的变量,以便能够在运行时显示它?

我不确定如何在 WPF 应用程序中看到控制台的输出。将Log4Net输出到文件中,然后将它的竞赛打印回字符串似乎很有趣。


更新

当Show output from:下拉菜单设置为“Debug”时,Console Appender可以在Visual Studio的输出窗口中看到 的输出。非常感谢@Aron 指出。

c# wpf log4net log4net-appender

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

从数据集中删除行

我想将一个 excel 数据表复制到我的表中,datagridview但我想从我的表所在的特定行(第 9 行)开始(在此之前有标题、评论等,它们不是表的一部分。)我我正在使用以下代码,但它不会从dataset.

    MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
    MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)

    DtSet = New System.Data.DataSet
    MyCommand.Fill(DtSet)
    DtSet.Tables(0).Rows(3).Delete()
    DtSet.Tables(0).Rows(3).AcceptChanges()


    dataGridArray(selectedTab).DataSource = DtSet.Tables(0)

    'MsgBox("number of Row(s)   -   " & DtSet.Tables(0).Rows.Count)

    MyConnection.Close()
Run Code Online (Sandbox Code Playgroud)

后delete()和acceptChanges,我仍然可以看到标题。

有谁可以看到我错在哪里?谢谢你。

vb.net oledb datagridview dataset

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

逗号分隔列表中最后一个值的正则表达式

我正在尝试构建一个正则表达式,它返回逗号分隔列表中最后一个逗号后的所有内容.

// So if my list is as followed
var tag_string = "red, green, blue";

// Then my match function would return
var last_tag = tag_string.match(A_REGEX_I_CANNOT_FIGURE_OUT_YET);

// Then in last tag I should have access to blue

// I have tried the following things: 
var last_tag = tag_string.match(",\*");

// I have seen similar solutions, but I cannot figure out how to get the only the last string after the last comma.
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

什么是NuGet以及它是如何工作的?[扩展实体框架]

直到最近我才把我的项目的.NET版本从4.5降级到4.0并且Visual Studio开始抱怨某些NuGet软件包需要EntityFramework重新安装再次工作,我从未摆弄过NuGet .所以我去了PM> Update-Package -reinstall EntityFramework,我被分类了.

所以,既然你知道我是如何实现这一点的,那么这些都是我的问题.

  1. 我很确定我没有在我的Visual Studio Express 2013上安装NuGet .它是Visual Studio的默认功能吗?
  2. 我没有EntityFramework在我的解决方案中添加NuGet包.NuGet是否发现我的解决方案需要什么,并自动添加它们?在我的解决方案中,我正在使用EntityKey和EntityState枚举,这需要using System.Data.Entity&using System.Data.Entity.Core.当抱怨没有找到这两个枚举时,Visual Studio添加了这两个命名空间,就像你使用一些LINQ一样,而你却没有using System.Linq.
  3. 实体框架的描述称"实体框架是微软推荐的新应用数据访问技术".这是第三方图书馆吗?我尽量不要使用第三方库.我还发现EntityFramework.dll现已添加到我的bin\Release文件夹中,我想我需要将它附加到我的可执行文件才能使其正常工作.
  4. 除了在引用中添加所需的第三方dll之外,NuGet还做了什么吗?我记得我过去使用过Log4Net,并没有使用NuGet的"添加软件包"功能.

.net entity-framework visual-studio nuget nuget-package

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

C#中的正则表达式只返回第一个匹配项

我试图简单地使用下面的Regex反汇编逗号分隔的字符串:

[^,]+
Run Code Online (Sandbox Code Playgroud)

但是,我在C#中使用此正则表达式获得的结果与其他引擎(如在线正则表达式编译器)不同.

C#由于某种原因只检测字符串中的第一个元素,而这就是全部.

在线编译的逗号分隔字符串示例.

我在C#中使用的代码返回: Foo

        var longString = "Foo, \nBar, \nBaz, \nQux"
        var match = Regex.Match(longString, @"[^,]+");
        var cutStrings = new List<string>();
        if (match.Success)
        {
            foreach (var capture in match.Captures)
            {
                cutStrings.Add(capture.ToString());
            }
        }
Run Code Online (Sandbox Code Playgroud)

regex

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

如何在后台实现UDP监听器?(可用于log4net)

我想UDPListener在后台运行它:

// launch this in a background thread
private static void UDPListen()
{
    IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
    using( var udpClient = new UdpClient(10000)) 
    {
       while (true)
       {
           var buffer = udpClient.Receive(ref remoteEndPoint);
           var loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
           // ...
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以把它放在一个Task.Run()并在while()循环中运行吗?

c# log4net asynchronous backgroundworker async-await

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

ScrollViewer ScrollBar 可见性

现在我正在使用 WPF ScrollViewer。

<ScrollViewer Name="uiPageScrollViewer" ScrollViewerHorizontalScrollBarVisibility="Auto">
...
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

我正在向 ScrollViewer 添加元素,并HorizontalScrollBar显示在UI When I try to get uiPageScrollViewer.HorizontalScrollBarVisibilityin code behind it returns Auto。

我怎样才能得到Visibility?什么时候HorizontalScrollBar在 UI 中显示比它应该返回 Visible 其他不符合。

c# wpf scrollbar

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

使用触发器设置标签控件的内容

我有一个Label在我的ControlTemplate,我想如果一个触发器发生改变它的内容。我尝试了许多不同的方法,但到目前为止还没有运气。这是我到目前为止可以更改的外观,但是不能更改Content

<Style x:Key="PartOptionsItemStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource InnerListViewItemsStyle}">
  <Style.Setters>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type ListViewItem}">
          <Border>
            <Grid>
              <Label x:Name="OptionPrice" HorizontalAlignment="Right" Content="{Binding Path=PriceDom}" ContentStringFormat="{}{0:C}" >
                <Label.Resources>
                  <Style TargetType="{x:Type Label}">
                    <Style.Triggers>
                      <DataTrigger Binding="{Binding Path=PriceDom}" Value="0">
                        <Setter Property="Foreground" Value="Red"></Setter>
                        <Setter Property="Background" Value="Black"/>
                        <Setter Property="TextBlock.Text" Value="Free" />
                      </DataTrigger>
                    </Style.Triggers>
                  </Style>
                </Label.Resources>
              </Label>
            </Grid>
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style.Setters>
</Style>
Run Code Online (Sandbox Code Playgroud)

我最初尝试使用如下代码编写此代码,ControlTemplate.Triggers但它甚至没有影响外观。

          <ControlTemplate.Triggers>
            <Trigger SourceName="OptionPrice" Property="Content"  Value="0">
              <Setter Property="Foreground" Value="Red" />
            </Trigger>
          </ControlTemplate.Triggers>
Run Code Online (Sandbox Code Playgroud)

你会怎么做,你会怎么做?

c# wpf templates triggers

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