0

これは、サイトのルート パスを提供するプロパティです

public static string SiteRootPath
    {
        get
        {
            string host = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
            string appRootUrl = HttpContext.Current.Request.ApplicationPath;
            if (string.IsNullOrEmpty(appRootUrl) || appRootUrl == "/")
            {
                return host + "/";
            }
            else
            {
                return host + appRootUrl + "/";
            }
        }
    }

私はこれが好きです

string path = EMS.DAL.DALHelper.SiteRootPath + "Home.aspx";

それから私はこれをします

string script = "<script language='javascript' >alert('User registered successfully');window.location.replace('" + path + "');</script>";
Page.RegisterStartupScript("alert", script);

これによりホームページにリダイレクトされ、localhost では問題なく動作しますが、サイトが公開されている IIS では動作しません。

ページソースを確認すると、これだけが見つかりました「alert('User registered successfully');」スクリプトタグ内??

解決できません。

何か案は ??

4

1 に答える 1

0

上の IIS でこれが正しく機能することを理解しておけばlocalhostよろしいですか? このアプリの以前のバージョンには がありましたが、 はありませんでしalert()window.location.replace()か?

そのサイトでホストされているアプリケーションのバージョンが正しくない/更新されておらず、古いバージョンが表示されているように思えます。そうしないと、ソースの一部だけが含まれていないことがわかりません。

サーバー上のアプリケーションに関連するキャッシュと一時ファイル (DLL) を空にしてから、クリーンアップし、再構築して再公開します。

次のような場所で呼び出されるフォルダーを探してTemporary ASP.NET Files、それらを空にします (もちろん、一時ファイル以外のものを削除しないように注意してください)。

  • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\
  • (...)
于 2013-04-08T11:20:20.523 に答える