私は、元のアプリケーションの一部である特定のページを参照するようにユーザーに電子メールを送信する必要があるWebアプリケーションを開発しています。次のようにアンカーのhrefを生成するために私の現在のコードは次のとおりです。プロキシを使用してリクエストURIを抽出する
String.Format("{0}{1}{2}{3}/{4}",
Request.Url.Scheme, Uri.SchemeDelimiter, Request.Url.Host,
Request.ApplicationPath, path);
目的は、それは関係なく、私が開発サーバー、テストサーバーまたは上のサイトを実行していたかどうかの、正しい部位に仕事とのリンクというものでしたプロダクションサーバー。しかし、いくつかの欠点があり、私はいくつかの助けを求めています。
Request.Url.Scheme
はすべての場合に機能しません。当社のプロダクションサーバーにはhttps接続が必要です。プロキシはhttps接続をキャッチし、要求を復号化してWebサーバーに転送します。そのため、Request.Url.Scheme
は常にhttp
Request.Url.Host
が本番サーバーのローカルサーバー名を返しています。私はこれも代理問題に関連していると思う。- 代わりに
Request.Headers["host"]
を使用することを提案している別の投稿をお読みください。これが同じ問題を抱えているかどうかはわかりません。
HTTP/HTTPS、転送およびこのHAZ TEH codez(または右方向に私を指すことができます)のASP.Netの取り扱いの少しより多くの知識を持つ人をしていますか?
基本的に、ユーザーがdev.example.comのサーバーからhttpを使用して電子メールを受信すると、電子メールのUriはhttp://dev.example.com/page.aspx
になります。ユーザーがプロダクションサーバーsecure.example.comをhttps(Webプロキシによって処理される)を使用している場合、リンクはhttps://secure.example.com/page.asx
である必要があります。
お返事ありがとうございます。私はこれを経営幹部に提案し、何が起こるかを見ていきます。あなたは開発者についての非常に良い点を作り、できるだけ緊密に一致していることを証明します。それはここでの問題です。私たちは絶えずそれを実現するためのリソースを得るために戦っています。 – Anthony
これはどこでも同じです:)最終的には、より構造化されたリリース方法論に移行したときに、コンプライアンス上の理由から購入を検討していました。サイクルの後半に環境的なバグが発見されたため、放出された回数が何回見えたのか...突然それが重要になった。 –