2011-08-01 6 views
4

私はMCV 3アプリを作成し、それを自分の組織内の開発サーバーにデプロイしました。それは私の開発マシンで正常に動作します。しかし、devサーバでは、正しくログインしても、アプリケーションはAccount/LogOn?ReturnUrl =%2fのWebページにリダイレクトされることに気付きました。また、資産(CSS、Javascript、画像)の一部が配信されないこともあります。私のアプリはアカウント/ログオンにリダイレクトされますか?ReturnUrl =%2f

表示されるエラーメッセージは次のとおりです。ページを更新した後、アプリケーションは正常に動作します。私がしばらくのうちにアプリケーションにアクセスしないと、エラーが戻ってきます。 アイデア

'/'アプリケーションでサーバーエラーが発生しました。

リソースが見つかりません。

概要HTTP 404。探しているリソース(またはその 依存関係の1つ)が削除されたか、名前が変更されたか、または が一時的に利用できませんでした。次のURLを参照し、 のスペルが正しいことを確認してください。

要求されたURL:/アカウント/ [ログオン

答えて

2

解決方法は、IISでフォーム認証を無効にすることでした。

+4

これは解決策ではありませんが、フォーム認証を使用できないという犠牲を払って回避策です(巨額の損失ではありませんが、まだハックされています)。実際のソリューションについては、http://stackoverflow.com/a/6304624/120990 – defines

+0

Thanks Dustinを参照してください。しかし、私は認証のためにADを使用しているので、最初の解決策は私のために働く。私はすべての認証がADによって制御されるエンタープライズ環境にいます。 – Omar

+2

それはあなたのために働くが、元の質問に対する正しい "解決策"ではない。私はちょうど答えを少し周りを見なければならなかったので、私は他人がリンクから恩恵を受けるかもしれないと思った:)乾杯! – defines

3

これはかなり一般的です。リソーススタイルシートなどでは、通常、@ Content.Urlを使用しないという結果になります。私の推測では、他の問題については、@ Url.Actionを使用する代わりにリンクをハードコーディングしている可能性があります。繰り返しますが、これは一般的なことです。私はそれを数回実行しました。

実際には、基本的に開発環境では、仮想ディレクトリにはまったく関心がありませんが、実稼働環境では問題が増えています。

IISのIISを使用しているときに、/ Account/Loginがルートディレクトリを指していると思いますが、仮想ディレクトリ経由でこのルートを指しています。リンクが<%= Html.ActionLink%>のようなものを介して生成された場合は、正常です。しかし、いくつかのjavascriptがあり、URLを呼び出す場合、または/ MyController/MyListへのリンクをハードコーディングする場合、それを見つけることはできません。

cssファイルと同じです。 「= <% = Url.Content( "〜/ Content.Siteを

<リンクのhref:あなたが新しいプロジェクトを作成するときにSite.cssファイルがアクセスされたかを見れば、あなたはこのようなものが表示されます.css ")%> 'など。

これは意味があるかどうかを教えてください。

+0

初めてページにアクセスするとどうなりますか?私はブラウザにホームページのURLを入力します。それは私の資格情報を私に尋ね、その後、私はそのエラーページ – Omar

+0

にリダイレクトされます。それは何らかのIIS設定のようです。 –

+0

それは私が考えているものです。 – Omar

1

ek_nyのように、これは非常に一般的な問題です。これら2つの変数は、アプリケーションのグローバル規模で作成する必要があります。サイドの背後にあるコードで

、すべてのページがアクセスすることができるクラスでこれを置く:

var jvSiteRootPath="<%=SiteRootPath %>"; 

:マスターページのファイルに入れて、フロントエンド、上

Public String SiteRootPath = (New Control).ResolveUrl("~/"); 

これで、ルートパスから参照する必要があるすべてのURLに対してこれを使用できます。

2

あなたが見てすることができる。このweb.configファイルが間違っを持っているので、許可役割=

あなたは以下のような役割のためにあなたのWebConfigページを設定した場合

は役割がログインを設定したものと一致することを確認してください「RoleNameHere」ロールとして。たとえば、Administratorの代わりにAdministratorsと書いたかもしれません。あなたが正しく役割を記述すると、にreturnurlは消え、あなたはログイン後に再びページにアクセスすることができます。

<location path="AdminDepartments.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Administrator"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 
0

私はあなたがForms Authenticationと一緒にあなたのウェブサイトのAnonymous Authenticationを可能にするべきだと思います。

IISでアプリケーションを選択し、次に機能ビューで認証を選択します。

関連する問題