小编nmd*_*mdr的帖子

如何捕获form.submit的响应

我有以下代码:

<script type="text/javascript">
        function SubmitForm()
        {

            form1.submit();
        }

        function ShowResponse()
        {

        }
</script>
.
.
.
<div>
    <a href="#" onclick="SubmitForm();">Click</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我想捕获html响应form1.submit?我该怎么做呢?我可以在form1.submit方法中注册任何回调函数吗?

javascript forms form-submit dom-events

117
推荐指数
7
解决办法
29万
查看次数

由ref传递的列表 - 帮我解释一下这种行为

看看以下程序:

class Test
{
    List<int> myList = new List<int>();

    public void TestMethod()
    {
        myList.Add(100);
        myList.Add(50);
        myList.Add(10);

        ChangeList(myList);

        foreach (int i in myList)
        {
            Console.WriteLine(i);
        }
    }

    private void ChangeList(List<int> myList)
    {
        myList.Sort();

        List<int> myList2 = new List<int>();
        myList2.Add(3);
        myList2.Add(4);

        myList = myList2;
    }
}
Run Code Online (Sandbox Code Playgroud)

我假设myList已经过去了ref,输出会

3
4
Run Code Online (Sandbox Code Playgroud)

该列表确实"通过ref传递",但只有该sort函数生效.以下声明myList = myList2;无效.

所以输出实际上是:

10
50
100
Run Code Online (Sandbox Code Playgroud)

你能帮我解释一下这个行为吗?如果确实myList没有通过ref(因为它看起来myList = myList2没有生效),如何myList.Sort()生效?

我甚至假设该语句不生效,输出为:

100
50
10
Run Code Online (Sandbox Code Playgroud)

c# list pass-by-reference

97
推荐指数
5
解决办法
9万
查看次数

在SQL LIKE子句中使用SqlParameter不起作用

我有以下代码:

const string Sql = 
    @"select distinct [name] 
      from tblCustomers 
      left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId  
      where (tblCustomer.Name LIKE '%@SEARCH%' OR tblCustomerInfo.Info LIKE '%@SEARCH%');";

using (var command = new SqlCommand(Sql, Connection))
{       
    command.Parameters.AddWithValue("@SEARCH", searchString);
    ...
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,我也试过这个:

const string Sql = 
    @"select distinct [name] 
     from tblCustomers 
     left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId  
     where (tblCustomer.Name LIKE @SEARCH OR tblCustomerInfo.Info LIKE @SEARCH );";

using (var command = new SqlCommand(Sql, Connection))
{       
    command.Parameters.AddWithValue("@SEARCH", "'%" + searchString + "%'");
    ... …
Run Code Online (Sandbox Code Playgroud)

c# t-sql sql-server ado.net sql-like

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

Div高度:0px不起作用?

<div style="height:0px;max-height:0px">
</div>
Run Code Online (Sandbox Code Playgroud)

将div高度设置为0px似乎不起作用.

div扩展以显示其内容,我们如何防止这种情况发生?

html css

32
推荐指数
4
解决办法
5万
查看次数

ASP.NET IIS - 请求何时排队?

Thomas Marquardt撰写的以下文章描述了IIS如何处理ASP.Net请求,可配置为运行的最大/最小CLR工作线程/托管IO线程,涉及的各种请求队列及其默认大小.

现在根据文章,IIS 6.0中发生以下情况:

  1. ASP.NET从IIS IO线程中获取请求,并将"HSE_STATUS_PENDING"发布到IIS IO线程
  2. 请求被移交给CLR Worker线程
  3. 如果请求具有高延迟并且所有线程都被占用(线程计数接近httpRuntime.minFreeThreads),则请求将发布到应用程序级别请求队列(此队列是每个AppDomain)
  4. ASP.NET还会检查并发执行请求的数量.文章指出"如果并发执行请求的数量太高",它会将传入的请求排队到ASP.NET全局请求队列(这是每个工作进程)(请检查更新2)

我想知道什么是"阈值",此时ASP.NET认为当前执行它的请求数太高,然后开始将请求排队到全局ASP.NET请求队列?

我认为这个阈值将取决于最大工作线程数的配置,但可能有一些公式基于哪个ASP.NET将确定并发执行请求的数量太高并开始将请求排队到ASP.NET全局请求队列.这个公式可能是什么?或者此设置是否可配置?


更新
我再次阅读文章,在评论部分我发现了这个:

1)在IIS 6和IIS 7经典模式下,每个应用程序(AppDomain)都有一个队列,用于维护工作线程的可用性.如果可用工作线程数低于httpRuntime minFreeThreads指定的限制,则此队列中的请求数会增加.当超过httpRuntime appRequestQueueLimit指定的限制时,请求将被拒绝,并显示503状态代码,并且客户端收到带有"服务器太忙"消息的HttpException.还有一个ASP.NET性能计数器"应用程序队列中的请求",指示队列中有多少请求.是的,CLR线程池是.NET ThreadPool类公开的线程池.

2)requestQueueLimit命名不佳.它实际上限制了ASP.NET可以同时处理的最大请求数.这包括排队的请求和正在执行的请求.如果"请求当前"性能计数器超过requestQueueLimit,则将使用503状态代码拒绝新的传入请求.

因此,基本上requestQueueLimit限制了排队的请求数(我假设它将在应用程序队列中排队的请求数加上全局ASP.Net请求队列加上当前正在执行的请求数)并正在执行.虽然这不能回答原始问题,但它确实提供了有关何时因为大量并发请求/高延迟请求而可能收到503服务器忙碌错误的信息. (检查更新2)


更新2 我的理解中存在错误.我混淆了IIS 6和IIS 7的描述.
实际上,当ASP.NET以集成模式托管在IIS 7.5和7.0上时,应用程序级队列不再存在,ASP.NET维护一个全局请求队列.
因此,如果认为执行请求的数量很高,IIS 7/7.5将开始将请求排队到全局请求队列.这个问题更适用于IIS 7/7.5而不是6.

IIS 6.0而言,没有全局ASP.NET请求队列,但以下情况属实:
1.ASP.NET从IIS IO线程中获取请求并将"HSE_STATUS_PENDING"发布到IIS IO线程
2.请求被移交给CLR工作线程
3.如果请求具有高延迟并且所有线程都被占用(线程计数接近httpRuntime.minFreeThreads),那么请求是发布到应用程序级别请求队列(此队列是每个AppDomain)
4.此外,ASP.NET还会在接受新请求之前检查排队和当前正在执行的请求数.如果此数字大于processModel.requestQueueLimit指定的值,则将拒绝传入的请求,并显示503服务器繁忙错误.

asp.net iis multithreading iis-6

32
推荐指数
1
解决办法
4万
查看次数

如何制作WPF Expander Stretch?

ExpanderWPF中的控件不会拉伸以填充所有可用空间.XAML中有任何解决方案吗?

c# wpf expander stretch

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

clientHeight/clientWidth在不同的浏览器上返回不同的值

属性document.body.clientHeightdocument.body.clientWidth在IE7,IE8和Firefox上返回不同的值:

IE 8:

document.body.clientHeight : 704 
document.body.clientWidth  : 1148
Run Code Online (Sandbox Code Playgroud)

IE 7:

document.body.clientHeight : 704 
document.body.clientWidth  : 1132
Run Code Online (Sandbox Code Playgroud)

火狐:

document.body.clientHeight : 620 
document.body.clientWidth  : 1152
Run Code Online (Sandbox Code Playgroud)

为什么存在这种差异?
在不使用jQuery的情况下,是否存在在不同浏览器(IE8,IE7,Firefox)中保持一致的等效属性?

javascript css firefox internet-explorer-8 internet-explorer-7

24
推荐指数
3
解决办法
12万
查看次数

WCF服务:状态200,sc-win32-status为64

我们在IIS 6.0上托管WCF服务的其中一台服务器上观察到以下行为:

  1. IIS日志显示时间值较高(> 100000)
  2. HTTP状态代码为200
  3. sc-win32-status代码显示值为64

我发现sc-win32-status代码为64表示"指定的网络不再可用"

最初我怀疑它可能是因为MinFileBytesPerSecond设置了限制,它设置了HTTP.sys在将数据从客户端发送到服务器以及从服务器返回到客户端时强制执行的最小吞吐率.但是sc-bytes和cs-bytes的值表示发送的数据量在通常为服务观察的范围内.

另请注意,WCF服务托管在四个盒子上并且是负载平衡的,但问题只发生在其中一个服务器上.(但基本上不在同一台服务器上).问题也是间歇性的.

有没有其他人遇到过这个错误?关于什么可能是错的任何线索?

更新

注意:观察IIS 7.5(IIS版本并不重要)

我能够复制该问题.如果出现以下问题:

1.WCF服务需要很长时间才能响应
2.客户端代理在收到服务器响应之前超时.在这种情况下,它会导致客户端上出现TimeoutException.
3.服务器一直在等待客户端的TCP ACK,它永远不会收到.

因此,超时超时(TCP套接字超时(默认值:4分钟)和sc-win32-status为64

所以基本上看起来WCF代码需要很长时间才能响应并且客户端超时,我在IIS日志中观察到的只是一个症状而不是问题.

iis wcf

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

有没有人在企业版中使用Google Gears?

我想创建一个具有客户端和服务器组件的应用程序.客户端可能不会一直连接到互联网,因此必须在本地存储数据,然后在互联网连接可用时与服务器同步.数据同步将是两种方式:客户端到服务器,服务器到客户端.

最初我想为ado.net使用SQL Server Merge复制/ Microsoft同步框架并使用C#windows窗体创建客户端应用程序.

但Google Gears似乎是一个非常好的选择,因为它适用于JavaScript,我们只需要构建一个asp.net Web应用程序,然后可以在客户端和服务器上使用它.此外,它还可以在Windows Mobile 5和6上使用,因此也可以在移动设备上使用.

但有没有人在企业场景中使用过Google Gears?有没有人使用Google Gears遇到任何问题?

architecture enterprise google-gears

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

为.Net Framework 4.0构建的WIX自定义操作不起作用?方法解决?

我们使用的是WIX 3.5(Build Number 1811),并构建了一个使用Visual Studio 2008构建的自定义操作,并将目标框架构建为.Net 3.5.在我们使用Visual Studio 2010和目标框架作为.Net 4.0构建自定义操作之前,这曾经很好用.

WIX无法调用自定义操作,我们得到的错误是:

  SFXCA: Extracting custom action to temporary directory: C:\Windows\Installer\MSI69BD.tmp-\
    SFXCA: Binding to CLR version v2.0.50727
    Calling custom action SomeCompany.SomeProduct.InstallerPlugin!SomeCompany.SomeProduct.InstallerPlugin.XYZProductCustomAction.ABCMethod
    Error: could not load custom action class SomeCompany.SomeProduct.InstallerPlugin.XYZProductCustomAction from assembly: SomeCompany.SomeProduct.InstallerPlugin

    System.BadImageFormatException: Could not load file or assembly 'SomeCompany.SomeProduct.InstallerPlugin' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

    File name: 'SomeCompany.SomeProduct.InstallerPlugin'
       at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, …
Run Code Online (Sandbox Code Playgroud)

.net wix .net-4.0 wix3.5

15
推荐指数
2
解决办法
7917
查看次数