小编Rip*_*ppo的帖子

application_start意外触发了asp.net

我正在查看一个asp.net应用程序,该应用程序调用应用程序中的数据库在global.asax中启动.这些调用大约需要3秒钟(取决于SQL缓存计划)才能运行.我注意到第一次重新部署时应用程序运行缓慢.我把它放在应用程序启动时对数据库的调用.但是几分钟后,应用程序再次需要时间来加载.

为了弄清楚发生了什么,我写了一个日志文件(见下文).从这个文件中你可以看到,当多个请求第一次到达应用程序时,应用程序启动多次.然后看起来application_start以随机方式触发(任何时间为2-10分钟).

根据我对application_starts如何工作的理解,它应该只在应用程序FIRST启动时被触发,但它似乎是从多个客户端随机触发的!根据MSDN "应用程序启动时第一次触发Application_Start事件."

任何人都可以帮我解决发生的事情吗?我正在使用IIS6和.net 2.0.它是我缺少的应用程序池设置.

非常感谢Rippo

[12/02/2009 16:16:58] 91.84.25.241 - Application started, Sub MyRules started
[12/02/2009 16:17:06] 65.55.51.34 - Application started, Sub MyRules started
[12/02/2009 16:17:07] 91.84.25.241 - Application started, Sub MyRules completed
[12/02/2009 16:17:10] 65.55.51.34 - Application started, Sub MyRules completed
[12/02/2009 16:17:26] 212.115.51.229 - Application started, Sub MyRules started
[12/02/2009 16:17:30] 212.115.51.229 - Application started, Sub MyRules completed
[12/02/2009 16:17:30] 212.115.51.229 - Application started, Sub MyRules started
[12/02/2009 16:17:33] 212.115.51.229 - Application started, Sub MyRules …
Run Code Online (Sandbox Code Playgroud)

asp.net web-applications global-asax

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

请求的 URL 授权失败

我正在将一些站点移至运行 IIS6 的新 Windows 2003 安装。但是,我遇到了表单身份验证的问题。有问题的站点在操作系统和 IIS 版本相同的旧机器上运行良好。

当我尝试登录该网站时,我收到一个事件日志“请求的 URL 授权失败”并且页面重定向回:-

http://www.demo.socialclause.net/logout.aspx?ReturnUrl=/Secure/Procurement/Default.aspx

旧服务器和新服务器都包含相同的设置和相同的权限。显然我在某处错过了一个设置,但无法理解它。任何人都可以帮忙吗?

我的 web.config 包含这个:-

<authentication mode="Forms">
  <forms slidingExpiration="true" name=".ASPXAUTH" protection="All" loginUrl="~/logout.aspx" timeout="60" ></forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)

在 /secure 目录(这不是虚拟目录)中,我的 web.config 包含:-

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow roles="ClauseAdmin"/>
      <allow roles="ProcurementAdmin"/>
      <allow roles="ReportAdmin"/>
      <allow roles="SystemAdmin"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

事件日志显示:

Event Type: Information
Event Source:   ASP.NET 2.0.50727.0
Event Category: Web Event 
Event ID:   1314
Date:       26/05/2009
Time:       21:01:05
User:       N/A
Computer:   WILDEAA1
Description:
Event code: 4007 
Event message: URL authorization …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-6

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

从webapi中删除xmlns:i和xmlns

我被要求从http端点提供以下XML文档,如下所示: -

<?xml version="1.0" encoding="utf-8"?> 
  <XMLFile xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SalesOrders>
 ...
</SalesOrders>
Run Code Online (Sandbox Code Playgroud)

但Web API会吐出来

<?xml version="1.0" encoding="utf-8"?>
<XMLFile xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://schemas.datacontract.org/2004/07/White.Label.Ordering.Infrastructure.Data.Queries.Export">
    <SalesOrders>
        ...
    </SalesOrders>
Run Code Online (Sandbox Code Playgroud)

我有谷歌并尝试各种修复,但无济于事,我的模型看起来像

[DataContract]
public class XMLFile
{
    [DataMember]
    public List<SalesOrder> SalesOrders { get; set; }
}

[DataContract]
public class SalesOrder
{
    [DataMember(Order = 1)]
    public string OrderNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的设置就像这样

    public static void Register(HttpConfiguration config)
    {
        config.Formatters.XmlFormatter.WriterSettings.OmitXmlDeclaration = false;
        ...

    }
Run Code Online (Sandbox Code Playgroud)

如何做我删除xmlns:i,并xmlns与更换xmlns:xsdxmlns:xsi

我知道这是一个不好的问题,因为它应该没关系,但我的消费客户正在bar.

c# xml xml-deserialization asp.net-web-api

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

jquery循环每行第一个td

我有以下jquery为表中的每个图像添加一个onclick

$("#listtable tr td img").each(
    function(intIndex) {
        $(this).click(function() {
          $(this).load("/Admin/ChangeIdeaStatus/" + $(this).attr('rel'));
        });
    }
);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是我想修改它,以便只有表中每行的第一个TD中的图像才能获得onclick事件.

我尝试了以下,但它不起作用

$("#listtable tr td:first img").each(
Run Code Online (Sandbox Code Playgroud)

each jquery

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

RegisterPerWebRequest 已过时,我可以使用 Lifestyle.Scoped 吗?

我只是在检查我的理智。这是我使用 simpleinjector 3.3.2 的代码

Container.RegisterPerWebRequest<HttpContextBase>(() =>
{
  var context = HttpContext.Current;
  if (context == null && Container.IsVerifying) return new FakeHttpContext();
    return new HttpContextWrapper(context);
});


Container.Verify();
Run Code Online (Sandbox Code Playgroud)

...

    public class FakeHttpContext : HttpContextBase { }
Run Code Online (Sandbox Code Playgroud)

然而,RegisterPerWebRequest 现在被标记为已过时,我不能 100% 确定这是否是更改代码以反映新代码库的正确方法。

Container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

//So we can inject HttpContextBase into any class
Container.Register<HttpContextBase>( () =>
{
  var context = HttpContext.Current;
  if (context == null && Container.IsVerifying)
    return new FakeHttpContext();

  return new HttpContextWrapper(context);
}, Lifestyle.Scoped);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是“我应该使用Lifestyle.Scoped替换RegisterPerWebRequest吗?我仍然可以按原样使用代码吗?


从文档来看我应该做得正确

c# dependency-injection simple-injector

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

在IIS7的web.config中设置集成模式

在IIS7中,您现在拥有集成模式和经典模式.是否可以使用web.config强制站点以集成模式运行,并且无法访问IIS7.

我问的原因是我最近注册了Mosso,需要以集成模式运行我的网站,而不是经典.

我知道我可以打电话给他们,也许让他们改变它...

iis-7 web-config

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

JTemplates格式使用asp.net mvc的日期

我有一个从MVC页面返回的以下JSON日期,例如

"DateProcessed":"\/Date(1258125238090)\/"
Run Code Online (Sandbox Code Playgroud)

我正在使用JTemplates处理数据,如下所示.

$('#result').setTemplate($("#TemplateResultsTable").html());
$("#result").processTemplate(data);
Run Code Online (Sandbox Code Playgroud)

这是我的结果模板

<script type="text/html" id="TemplateResultsTable">    
<h3>{$T[0].StatusName} - Found: {$T.length} </h3>
<table>
    <tr>
        <th>Name</th>
        <th>Description</th>
        <th>Date Processed</th>
    </tr>
    {#foreach $T as match}
        <tr>
            <td>{$T.match.Title}</td>
            <td>{$T.match.Description}</td>
            <td>{$T.match.DateProcessed}</td>
        </tr>
    {#/for}
</table>
</script>
Run Code Online (Sandbox Code Playgroud)

除了我的日期在页面上输出为/ Date(1258125238090)/之外,一切都很棒

如何格式化结果模板中的日期?

format model-view-controller json date jtemplate

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

在asp.net mvc的masterpage上有条件地渲染部分

嗨,我在asp.net mvc Web应用程序的主页上定义了以下菜单

<%Html.RenderPartial("AdminMenu"); %>
<%Html.RenderPartial("ApproverMenu"); %>
<%Html.RenderPartial("EditorMenu"); %>
Run Code Online (Sandbox Code Playgroud)

但是,我想只显示正确的菜单,具体取决于登录的用户角色.我该如何实现这一目标?

我开始认为我的策略是不正确的,那么是否有更好的方法来实现同样的目标?

c# asp.net-mvc master-pages renderpartial

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

使用 puppeteer 等待显示 Google Captcha

我无法使用 Puppeteer 验证页面上是否存在 div,而且我不知道为什么...我想使用以下代码在页面上确定验证码的范围:

puppeteer
    .launch(options)
    .then(async (browser) => {
      const page = await browser.newPage();
      await page.setViewport({ width: 1280, height: 720 });
      console.log("[+] Connecting...");
      await page.goto("https://www.google.com/recaptcha/api2/demo");
      console.log("[+] Connected");
      page.waitForNavigation()
      if (await page.$('div.recaptcha-checkbox-border') !== null)
        console.log('[+] Resolving captcha');
  })
  .catch((err) => {
    console.log(err);
  });
Run Code Online (Sandbox Code Playgroud)

但我的 if 总是假的,我不知道为什么。

以下是手动确定范围的元素的屏幕截图:

作用域元素

javascript node.js puppeteer

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

网络方法的最大数量?

我在asp.net 2.0中有一个有234种方法的Web服务.似乎当我添加另一个方法时,该站点不会在VS2005中编译,直到我先删除一个.我收到一条消息,说我刚刚添加的新方法不存在于属于Microsoft.Net/.../Temporary Files目录的文件中.我重新启动了IIS,关闭了VS2005,从这个临时目录中删除了所有文件,但无济于事.获取代码编译的唯一方法是删除另一个代码以保留234个方法....

我可以一致性复制此行为,因此它不能是我的代码.现在我知道这看起来很奇怪,但这是真的!另一个奇怪的事情是,正好有100个方法名称以GetXXXyyyZZZ这个词开头

是否有其他人在Web服务中允许的最大方法数量方面遇到问题?非常感谢

asp.net web-services

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