标签: scriptmanager

如何强制ScriptManager通过SSL提供CDN脚本

我们在网络服务器场上提供了一个站点.该农场是处理加密的SSL Accellerator的幕后推手.这意味着我们的IIS服务器将所有传入连接视为http,即使用户都通过https连接到该站点.

我们开始使用ScriptManager的EnableCDN = true属性.在没有SSL Accellerator的开发环境中,CDN上的js文件的引用是使用https呈现的,在生产环境中,它们通过http不安全地呈现,导致js被阻止,"仅显示安全内容"错误.

如果没有手动更新scriptmanager中的所有脚本引用或通过模块重新编写HTML,有没有人知道强制脚本管理器通过https呈现其引用的方法?

编辑:

在做了一些反射器审查后,我不相信这是可能的.我已经将下面的hack放到了适当位置,但是这显然是脆弱的,因为它涉及访问私有字段.如果有人能看到更好的方式我会喜欢听到它.

var secureConnectionField = ScriptManager.GetType().GetField("_isSecureConnection", BindingFlags.Instance | BindingFlags.NonPublic);
if (secureConnectionField != null)
    secureConnectionField.SetValue(ScriptManager, true);
Run Code Online (Sandbox Code Playgroud)

c# asp.net ssl cdn scriptmanager

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

asp.net ScriptManager PageMethods未定义

我想从JS调用静态服务器端方法,所以我决定在我的网站上使用ScriptManager控件.所以我有一个母版页,具有这样的结构:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="TopLevelMasterPage.Master.cs"
    Inherits="Likedrive.MasterPages.TopLevelMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://ogp.me/ns/fb#">

<head runat="server">
    <title></title>
        <script type="text/javascript">
            function getGiftFileUrl() {
                function OnSuccess(response) {
                    alert(response);
                }
                function OnError(error) {
                    alert(error);
                }

                PageMethods.GetGiftFileUrl("hero", 1024, 768, OnSuccess, OnError);
            }

            getGiftFileUrl();

        </script>
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManagerMain"
            runat="server"
            EnablePageMethods="true" 
            ScriptMode="Release" 
            LoadScriptsBeforeUI="true">
    </asp:ScriptManager>
    <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
    </asp:ContentPlaceHolder>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是当页面加载时,我有一个JS异常 - 未定义PageMethods.我认为该对象将被隐式创建,所以我可以在我的javascript中使用它.

javascript asp.net ajax scriptmanager

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

在asp.net页面中包含脚本的正确方法

我有一个ASP.NET应用程序,它使用ASP.NET AJAX(包括UpdatePanel)和由不同背景的几个开发人员编写的jQuery.

一些包含ScriptManager本身内的脚本<asp:ScriptManager><Scripts><asp:ScriptReference....,而其他包含在Page.ClientScript.RegisterClientScriptInclude后面的代码中,而其他<script src="">脚本直接包含脚本.

如果可能的话,我想整合到一种处理这种方式,但我不确定每种方式的优缺点是什么,哪种方式更受欢迎.


一个例子是:

protected override void Render(HtmlTextWriter writer)
 {
    Page.ClientScript.RegisterClientScriptInclude("jQuery", ResolveClientUrl("~/scripts/jquery/js/jquery-1.4.2.min.js"));    
    base.Render(writer);
}
Run Code Online (Sandbox Code Playgroud)

VS

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/scripts/jquery/js/jquery-1.4.2.min.js" />
    </Scripts>
</asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)

VS

<script src="Scripts/jQuery/js/jquery-1.4.2.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

javascript asp.net scriptmanager

10
推荐指数
2
解决办法
6349
查看次数

WebResource.axd和ScriptResource.axd加载速度非常慢

在正常情况下,两个.axd文件以正常速度加载到浏览器,即几百毫秒.通过查看chrome或其他调试工具中的瀑布图(网络图表),我可以看到它们与所有其他页面元素一起正常加载.

偶尔会出现两个文件需要大约一分钟才能加载的问题.以下是一些其他说明:

  • 页面上的所有其他元素以正常速度加载.
  • 它通常每天发生一次或两次并持续几分钟.
  • 我可以在性能计数器上同时看到Requests Queued峰值.
  • 在此期间,CPU,内存和磁盘都保持正常.
  • 今天有几个小时的中断,需要重新启动应用程序才能解决.
  • 没有组合.axd文件或类似的任何.
  • 在站点范围内实施URL重写.axd文件被排除在重写之外.
  • 适用于C#3.5的应用程序
  • IIS 7
  • 我正在使用ScriptManager的CDN版本,例如:

    <asp:scriptreference name="MicrosoftAjax.js" path="http://ajax.microsoft.com/ajax/3.5/MicrosoftAjax.js"></asp:scriptreference>

看起来其他人有类似的问题,但没有解决:

WebResource.axd和ScriptResource.axd怪异的行为

WebResource.axd和ScriptResource.axd加载需要1分钟以上

题:

知道如何弄清楚导致这两个文件偶尔加载的原因是什么?

此外,是否有任何变通办法,例如预构建.axd文件或其他东西..?

c# asp.net iis scriptmanager

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

在html5中输入类型不是文本的UpdatePanel

我正在开发一个使用ASP.NET渲染HTML5的开源项目.在这里你可以看看:http: //asphtml5.codeplex.com/

现在我在更新面板时遇到问题,回复了"text"以外的类型的输入值.你可能知道,html 5引入了几种输入类型,例如'number','tel','search'等.现在,如果我渲染这样的控件,一切正常情况下工作正常,但如果我把它们放入UpdatePanel,没有值将被回发,值将被重置.

这是一小段产生相同错误的代码:

    <asp:UpdatePanel runat="server" ID="UP">
        <ContentTemplate>
            <p>
                Enter A Number:
                <asp:TextBox runat="server" ID="Number2" type="number" />
            </p>
            <asp:Button Text="Submit" runat="server" ID="BtnSubmit" OnClick="BtnSubmit_Click" />
            <p>
                You entered :
                <asp:Label Text="" ID="LblValue" runat="server" />
            </p>
        </ContentTemplate>
    </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

如果您在支持html 5的浏览器上测试此代码,请以Chrome为例,将显示Numeric Up-Down字段.但是如果单击提交按钮,它将丢失您输入的值.

这是事件处理程序的代码:

        protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            LblValue.Text = Number2.Text;
        }
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的是读取UpdatePanel,ScriptManager和ScriptManagerProxy类代码,没有找到.

我想我可能需要创建自己的UpdatePanel和/或ScriptManager类来使用.

任何人都可以帮助我,并告诉我在哪里检查.

asp.net html5 updatepanel scriptmanager

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

Internet Explorer 8中的ScriptManager.RegisterClientScriptBlock和jQuery问题

我想使用jQuery的jGrowl插件(http://stanlemon.net/projects/jgrowl.html#samples)在页面上显示一些消息.为此,我调用ScriptManager.RegisterClientScriptBlock方法,如下所示:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(),
   "$.jGrowl('" + message + "');", true);
Run Code Online (Sandbox Code Playgroud)

该代码在Firefox/Chrome/Safari中非常完美.但是在Internet Explorer中我没有看到通知,我没有收到任何Javascript错误.

我在Windows 7下工作,我有Internet Explorer 8 Beta(版本8.0.7000.0),我在兼容模式下有相同的"错误".

我怎么解决这个问题?

asp.net jquery plugins scriptmanager registerclientscriptblock

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

ScriptManager.RegisterClientScriptInclude在UpdatePanel中不起作用

我已通过网络阅读但未找到解决以下问题的方法.我有这个示例页面(_ScriptManager.aspx),其中a ScriptManager,an UpdatePanel,a 在视图之间MultiView有两个Views和两个LinkButtons两个切换.第二个视图包含一些我想为(_ScriptManager.js)加载JavaScript文件的功能.

由于我不知道用户是否会访问视图2我不想为每个请求静态包含javascript文件.我只想在需要时加载它.所以我需要在异步回发期间包含脚本文件,这是我用ScriptManager.RegisterClientScriptInclude的.痛苦是:它不起作用.脚本包含在某种程度上不在客户端上执行,因此不能使用内部的javascript函数.更糟糕的是,我注册的脚本块ScriptManager.RegisterStartupScript在这种情况下不会被执行!这一切都非常恼人.有趣的是,包含脚本和脚本块确实通过异步回发(Fiddler是我的朋友:-))发送到客户端,并且还加载了脚本文件.但那时javascript似乎打破了......

有没有人有线索或知道报告的错误?

_ScriptManager.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="_ScriptManager.aspx.cs" Inherits="Frontend.Web._Tests.ScriptManagerTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title></title>
  <script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.3.2.min.js"></script>
</head>
<body>
  <form id="form1" runat="server">
    <asp:ScriptManager runat="server" ID="scm"></asp:ScriptManager>
    <asp:Label runat="server" ID="lbOut">Outside of UpdatePanel</asp:Label>
  <div style="border: solid 1px red;">
      <asp:UpdatePanel runat="server" ID="up" UpdateMode="Conditional">
        <ContentTemplate>
          <div>
            <asp:LinkButton runat="server" ID="btnFirst">Show view 1</asp:LinkButton>
            <asp:LinkButton runat="server" ID="btnSecond">Show view 2</asp:LinkButton>
          </div>
          <div>
            <asp:MultiView …
Run Code Online (Sandbox Code Playgroud)

updatepanel asp.net-ajax scriptmanager

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

只能将一个ScriptManager实例添加到页面中

我有一个ASP UpdatePanel来更新一个工作正常的gridview,现在我也想使用AjaxControlToolkit来处理那里的一些控件,但是当我运行时连接所有内容后我得到一个错误

  "Only one instance of a ScriptManager can be added to the page."
Run Code Online (Sandbox Code Playgroud)

尽管我评论了ASP ScriptManager并使用了toolkitscriptmanager这一事实.但请注意我仍在使用ASP UpdatePanels.

 <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
                    </asp:ToolkitScriptManager>

                  <!-- <asp:ScriptManager ID="ScriptManager1" runat="server">
                                 </asp:ScriptManager>-->
Run Code Online (Sandbox Code Playgroud)

关于这里可能出现什么问题的任何想法?

asp.net ajax asp.net-ajax scriptmanager

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

如何从javascript调用Web服务方法?

有没有办法从JavaScript调用Web服务?我知道你可以添加一个脚本管理器来引入Web服务,但是一旦我做完了,我就无法弄清楚如何从javascript访问这些函数.

谢谢,
马特

javascript asp.net web-services scriptmanager

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

在ASP.NET内容页面上设置ScriptManager AsyncPostBackTimeout值

我在我的ASP.NET网站上使用母版页,在我上传文件的一个内容页面中,需要比默认值90秒更长的超时值.对于其他内容页面,我想保留默认的超时值.

是否可以为特定内容页面设置超时?我检查了ScriptManagerProxy组件,但它没有AsyncPostBackTimeout属性.

asp.net timeout master-pages asp.net-ajax scriptmanager

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