小编Ste*_*ves的帖子

如何将DataSet返回到View

我通过SqlDataAdapter向我的Sql框发送标准的Sql select语句,然后填充DataSet对象.

我可以访问生成的DataSet中的行,但是如何将DataSet转换为可以返回到MVC视图的List.即我假设一个List对象是处理这个问题的最佳方法.

这是我的控制器c#代码:

public class QAController : Controller
{

    private readonly static string connString = ConfigurationManager.ConnectionStrings["RegrDBConnection"].ToString();
    private readonly static SqlConnection sqlConn = new SqlConnection(connString);
    private readonly static SqlCommand sqlComm = new SqlCommand();

    public ActionResult Index()
    {
        DbRegressionExec();
        return View();
    }
    public static void DbRegressionExec()
    {
        // SELECT TABLE CONTENTS FROM SQL !!
        RegressDB_TableList regresDB = new RegressDB_TableList();
        string sqlStr = "select * from [RegressionResults].[dbo].[Diff_MasterList] order by TableName";

        // POPULATE DATASET OBJECT
        DataSet ds = new DataSet();
        SqlDataAdapter da = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-4

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

是否有办法自动使MongoDB C#Driver在主服务器出现故障时不抛出EndOfStreamException?

我一直在测试官方MongoDB C#驱动程序,副本集为3个实例.我创建了一个简单的应用程序,它可以在循环中访问副本集.

我的问题是:当我关闭主服务器时,是否有可能让C#驱动程序自动重新运行查询,而不像现在那样抛出EndOfStreamException?

这是MongoServerSettings的初始化代码:

        var settings = new MongoServerSettings()
        {
            ConnectionMode = ConnectionMode.ReplicaSet,
            ReplicaSetName = "mongors",
            ReadPreference = new ReadPreference(ReadPreferenceMode.PrimaryPreferred),
            SafeMode = SafeMode.True,
            DefaultCredentials = new MongoCredentials("user", "password"),
            Servers = new[] { new MongoServerAddress("server.net", 27020), 
                        new MongoServerAddress("server.net", 27019),
                        new MongoServerAddress("server.net", 27018)}

        };
Run Code Online (Sandbox Code Playgroud)

这是我查询服务器的代码:

        while (true)
        {
            var server = MongoServer.Create(settings);
            var db = server.GetDatabase("db");
            var collection = db.GetCollection<TaggedAction>("actions");
            var query = Query.EQ("_id", id);
            var entity = collection.FindOne(query);

            Console.WriteLine(DateTime.Now +" " + entity.ActionName);

            Thread.Sleep(2500);
        }
Run Code Online (Sandbox Code Playgroud)

如果我关闭主服务器,客户端会抛出以下异常:

System.IO.EndOfStreamException was unhandled
  HResult=-2147024858
  Message=Attempted …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-.net-driver

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

自定义类型应用程序设置

我环顾四周,到目前为止没有任何帮助.

我目前有这个代码:

namespace InstaShot
{
    [Serializable]
    public class Hotkey
    {
        public uint Modifier { get; private set; }
        public int Key { get; private set; }
        public Hotkey(uint modifier, int key)
        {
            this.Modifier = modifier;
            this.Key = key;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,每当我尝试在我的应用程序设置中创建一个设置时,我得到:

未定义"InstaShot.Hotkey"类型.

当它显然是......它适用于同一命名空间内的其他类,只不是那个......现在真的很烦我.

c# settings types

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

如何使用返回类型的System.Action?

在BLL课程中,我写道:

Private List<T> GetData(string a, string b)
{
   TryAction(()=>{
      //Call BLL Method to retrieve the list of BO.
       return BLLInstance.GetAllList(a,b);
    });
}
Run Code Online (Sandbox Code Playgroud)

在BLL基类中,我有一个方法:

protected void TryAction(Action action)
{
 try
 {
   action();
 }
 catch(Exception e)
 {
   // write exception to output (Response.Write(str))
 }
}
Run Code Online (Sandbox Code Playgroud)

如何使用TryAction()泛型返回类型的方法?请有个建议.

.net asp.net action c#-4.0

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

代理在本地工作,但在上传到webhost时失败

我现在花了很多时间来配置我的代理.目前我使用的是名为proxybonanza的服务.他们为我提供了一个用于获取网页的代理.

我正在使用HTMLAGILITYPACK

现在,如果我在没有代理的情况下运行我的代码,那么在本地或上传到webhost服务器时没有问题.

如果我决定使用代理,它需要更长的时间,但它仍然在本地工作.

 If I publish my solution to, to my webhost I get a SocketException (0x274c) 

 "A connection attempt failed because the connected party did not properly respond
 after a period of time, or established connection failed because connected host has
 failed to respond 38.69.197.71:45623"
Run Code Online (Sandbox Code Playgroud)

我已经调试了很长时间了.

我的app.config有两个与此相关的条目

httpWebRequest useUnsafeHeaderParsing="true" 
httpRuntime executionTimeout="180"
Run Code Online (Sandbox Code Playgroud)

这帮助我解决了几个问题.

现在这是我的C#代码.

 HtmlWeb htmlweb = new HtmlWeb();
 htmlweb.PreRequest = new HtmlAgilityPack.HtmlWeb.PreRequestHandler(OnPreRequest);
 HtmlDocument htmldoc = htmlweb.Load(@"http://www.websitetofetch.com,
                                         "IP", port, "username", "password");

 //This is the preRequest config
 static bool …
Run Code Online (Sandbox Code Playgroud)

c# asp.net proxy html-agility-pack

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

如何同时调试具有两个控制台应用程序的WCF服务

我有一个WCF Web服务,负责管理从我们的内部业务应用程序发送到分布式客户端应用程序集的工作.

我希望能够设置一个控制台应用程序来模拟内部应用程序(测试发送工作)以及一个模拟客户端应用程序(测试执行工作).

为此,我需要同时调试两个控制台应用程序,并能够在WCF服务中单步调试代码.显然[不正确,请参阅awswer],Visual Studio解决方案只能有一个启动项目; 在这种情况下踩踏很容易.但是,如何同时使用TWO控制台应用程序单步执行WCF服务?(可以/应该这样做吗?有更好的方法来进行测试吗?)

c# wcf visual-studio

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

并发Web请求性能问题

我正在开发一项新服务,为我们公司的多个Web属性运行QA,并遇到了一个有趣的网络并发问题.为了提高性能,我使用TPL从大量url创建HttpWebRequests,以便它们可以并行运行; 但是,我似乎无法找到过程中的瓶颈所在.

我到目前为止的观察:

  • 我可以通过TPL获得最多约25-30个并行线程
  • CPU永远不会破坏5-6%的服务(运行在1-4核心,有和没有H/T)
  • NIC使用率从未突破2-3%
  • 整体网络流量似乎没有受到影响(其他用户不抱怨,速度测试运行的同时不会显示太多影响)
  • 在办公室网络(15Mbps)或我们的数据中心(100 + Mbps)上运行之间的速度变化不大
  • 通过一次从多个主机下载而不是从一个主机上下载大量页面,我获得了一点性能提升.

可能的痛点:

  • CPU(内核或硬件线程数)
  • NIC
  • 允许的最大并发HttpWebRequests数
  • LAN
  • 广域网
  • 路由器/交换机/负载平衡器

所以问题是:

显然现在可以在几分钟内下载整个互联网,但我很想知道在这样的场景中瓶颈在哪里以及可以采取什么措施来克服它.

作为旁注,我们目前正在使用第三方服务进行抓取,但我们在某些方面受到限制,并希望获得更大的灵活性.关于企业秘密酱或箭头尖端的毒药 ...... :)

c# httpwebrequest task-parallel-library

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

调试时可以看到ObjectStateManager中的内容吗?

背景

我在更新EF中的实体时遇到了一些麻烦。我不断收到此错误:

“ ObjectStateManager中已经存在具有相同键的对象。ObjectStateManager无法跟踪具有相同键的多个对象”

我完全知道,显然还有一个附加的实体。但是,我目前无法对其进行跟踪。有很多代码,我已经花了很多时间了。据我所知,我AsNoTracking()在所有查询中都使用了扩展方法。

我需要的

我的问题是:在任何给定时间,我有什么办法可以看到ObjectStateManager中的实际内容?如果在调试过程中可以看到其中的项目,则可以更快地找到其来源。

如果上述方法不可行,我将对如何最好地解决此问题提供任何建议,这就像现在的大海捞针一样。

c# entity-framework

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

使用Linq将IEnumerable <KeyValuePair <string,string >>值连接成字符串

鉴于IEnumerable<KeyValuePair<string,string>>,我正在尝试使用linq将值连接成一个字符串.

我的尝试:

string path = attributes.Aggregate((current, next) => "@" + current.Key + "=" + current.Value + " and @" + next.Key + "=" + next.Value);
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

无法将表达式' string' 转换为返回类型' KeyValuePair<string,string>'

在linq中有更有效的方法吗?

完整的方法......

public IEnumerable<XmlNode> GetNodes(IEnumerable<KeyValuePair<string,string>> attributes) {
    StateInfoXmlDocument stateInfoXmlDocument = new StateInfoXmlDocument();
    string path = attributes.Aggregate((current, next) => "@" + current.Key + "=" + current.Value + " and @" + next.Key + "=" + next.Value);
    string schoolTypeXmlPath = string.Format(SCHOOL_TYPE_XML_PATH, path);

    return stateInfoXmlDocument.SelectNodes(schoolTypeXmlPath).Cast<XmlNode>().Distinct();
}
Run Code Online (Sandbox Code Playgroud)

c# linq concatenation

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

如何在浏览器中查看Web套接字响应?

我使用的是 Google Chrome 版本 24

我正在查看一个网站,其中数据通过 websocket 调用获取到前端。

我的问题是,“是否可以从浏览器查看 Web 套接字响应?” 有这样的工具吗?

请告诉我,提前谢谢。

javascript browser google-chrome websocket google-chrome-devtools

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