none
公開するとSQLServerとAJAX(アニメーションのみ)がうまく実行できなくなってしまいます RRS feed

  • 質問

  • ローカルでつくったサイトを実行するとうまく動作するのですが
    そのWEBサイトをIISで公開するとSQLServerとAJAX(アニメーションのみ)がうまく実行できなくなってしまいます。 
      
    なにが悪いのかよくわからないのですが
    できなくなったことは2点です。
     
    1 SQLServerとの接続ができなくなってしまいました。
     Web.config構成ファイルを
     <configuration>
     <customErrors mode="off"/>
     </system.web>
     </configuration>
     とし、SQLDataSourceのある画面を実行してみたのですが
     このログインで要求されたデータベース"TEST"を開けません。
     ログインに失敗しました。
     というエラーがでてしまいます。 
     
    2 ScriptManager
     UpdatePanel
     UpdatePanelAnimationExtenderを使いボタンを押した後、画面が光るものですが光らなくなってしまいました。 
      
     <ajaxToolkit:UpdatePanelAnimationExtender ID="upae"
       runat="server" TargetControlID="upanel">
       <Animations>
         <%--更新完了時のアニメーションを定義--%>
         <OnUpdated>
           <Sequence>
             <%--ラベルの背景色を#008800(緑)から#FFFFFF(白)に変更--%>
             <Color AnimationTarget="lblAsync"
               PropertyKey="backgroundColor"
               StartValue="#008800" EndValue="#FFFFFF" />
           </Sequence>
         </OnUpdated>
       </Animations>

    2009年6月21日 2:18

回答

  • XPマシンでIIS上でのASP.NETの実行時のユーザはそのマシンのASPNETという名前のユーザになります。
    SQL Server側にASPNETユーザにたいするアクセス権限(多分実行権限も)が設定されていないため、ログインできない、というエラーメッセージそのままの状況になっていると思われます。

    とりあえず動かしたい、ということならSQL Server側でASPNETユーザに対するアクセス権や実行権限をつけてあげれば動くでしょう。

    ただ、これは上記の環境での話で、実運用を行うサーバに展開するときには、そこのSQL Serverの環境にあわせた設定等をしてあげる必要があります。
    たぶん接続文字列等を変える必要がでてくるでしょうね。
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク komi1 2009年6月26日 13:41
    2009年6月24日 10:50

すべての返信

  • 具体的に、

    > ローカルでつくったサイトを実行する・・・

    > そのWEBサイトをIISで公開する・・・

    の環境を書かないと(特にその違いを詳しく)、誰も答えようがないと思いますよ。

    親切な回答者は、よくあるパターンを想像して答えてくれるかもしれませんが、お互い時間と労力の無駄
    になることが多かったと記憶しています。

    2009年6月21日 2:57
  • 説明不足で申し訳ありません。 

    ローカルでつくったサイトを実行・・・というのは
    VWDの「ファイル」→「新しいWEBサイト」でデスクトップにファイルを指定し作ったもので
    http://localhost:ポート番号/VB/album.aspxという状態です。


    そのWEBサイトをIISで公開・・・というのは「Webサイト」→「Webサイトのコピー」で
    http://IPアドレス/VB/album.aspxという状態です。

    IPアドレスの方でSQLServerとAJAX(アニメーションのみ)がうまく実行できなくなってしまいます。 
    なにか設定が必要なのでしょうか?
    2009年6月21日 10:51
  • 「環境」の意味を理解されているでしょうか?
    2009年6月21日 12:58
  • すみません。環境とはどういうことでしょうか?
    ウインドウズ XP プロフェッショナルVisual Web Developer2008で
    SQL Server2005Express Edition を使用しています。
    サービスの開始はしています。
    ([スタート] →[すべてのプログラム] →[Microsoft SQL Server 2005]
    [構成ツール] →[SQL Server 構成マネージャ] →[SQL Server 2005 のサービス]
    [SQL Server Browser] を右クリックし、[開始] させています。)

    2009年6月21日 14:07
  • ローカルでつくったサイトを実行、と書かれていますが、これはVWDに付属の開発用サーバで実行した、ということでしょうね。
    開発用サーバとIISでは各種設定が異なってきます。
    単にコピーしたら動くというものではありません。

    データベースについては接続文字列がIIS上で実行するのに正しい状態になっていないのだろうとは思いますが、どのような状態が正しいか、というとこれはIISを実行しようとしているマシンの各種設定(とくにSQL Serverのインストールの状態とか)によって異なってくるので、掲示板のやりとりだけで説明するのは難しいです。
    どのような設定情報が必要か理解していて、掲示板に説明ができるぐらいの人であれば自分で解決できるでしょうし、そうでない人は正しい説明ができなくていろいろ聞いてもきちんとできない、というのが多いパターンですね。

    Ajaxのほうはよくわかりませんけど、考えられるのはIISの設定とかかなぁ。。。

    どちらにしても動作させる環境について勉強されたほうがよいかと思います。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2009年6月22日 1:49
  • SQL ServerがIISと同じサーバーにあるかどうかも重要な点です。Ajaxの方は異なるドメインにリクエストを送れないという制限がありますが、これに引っかかったりしていませんか?


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年6月22日 9:38
    モデレータ
  • SQL Server と IIS は同じサーバーにあります。
    ログインに失敗しました。ということは承認ができていないということなんでしょうか?
    Windows承認で開いているのですが、ここが問題なのでしょうか?

    2009年6月22日 11:14
  • > すみません。環境とはどういうことでしょうか?

    とりあえず、OS, .NET Framework, IIS, SQL Server, Ajax Extension, ACT
    のバージョンにつき、「ローカル」と「WEBサイトをIISで公開」の違いを調べ
    ると、解決のためのヒントが得られるかもしれません。

    > ウインドウズ XP プロフェッショナルVisual Web Developer2008で
    > SQL Server2005Express Edition を使用しています。

    それは「ローカル」の方ですよね? 「WEBサイトをIISで公開」の方は、別に
    Web/DB サーバーを立てていると理解していますが、そちらの環境はどうなっ
    ていますか? SQL Server が Express でなく、接続文字列が違うとか DB の
    アタッチがされてないということはありませんか?

    ひょっとして、同じ PC で、「ローカル」は開発サーバー、「WEBサイトを
    IISで公開」は XP Pro 付属の IIS 上で Web アプリを動かしているということ
    ですか? その場合、その PC のブラウザで http://localhost/VB/album.aspx
    にアクセスするとどうなりますか? それで同じ問題が出たら、VWD のローカル
    IIS モードでデバックしてみたらどうですか?

    2009年6月22日 12:54
  • >とりあえず、OS, .NET Framework, IIS, SQL Server, Ajax Extension, ACT
    >のバージョンにつき、「ローカル」と「WEBサイトをIISで公開」の違いを調べ
    >ると、解決のためのヒントが得られるかもしれません。

    http://msdn.microsoft.com/ja-jp/library/33487zw6(VS.80).aspx
    「ローカル Web サイトのセキュリティおよび認証を構成する」を実行してみましたが
    状態はかわらないままです。 

    >それは「ローカル」の方ですよね? 「WEBサイトをIISで公開」の方は、別に
    >Web/DB サーバーを立てていると理解していますが、そちらの環境はどうなっ
    >ていますか? SQL Server が Express でなく、接続文字列が違うとか DB の
    >アタッチがされてないということはありませんか?

    http://social.msdn.microsoft.com/Forums/ja-JP/vwdexpressja/thread/f6d8d95c-c9fb-44b2-9479-391bcceff096
    で似たような質問をみつけたのでよんでみました。
      *この状況にて、Visual Webにてプログラム作成。Visual Webにあります「ASP.NET構成」にてインターネット接続でユーザーを作成。
      *ロールも作成いたしました。作成後、IISにて「仮想ディレクトリ」で公開しました。
               →ここまでは実行しました。

      *参考ページにありましたように内容をコピーしましたディレクトリにあるファイルASPNETDB.MDFとaspnetdb_log.ldfに
      *アクセスできるユーザを追加(Everyoneやインターネットゲストアカウント)を追加し、変更と書き込みの権限を与えました。
               →これはフォルダを右クリックし、セキュリティにASPNETを追加してフルコントロールにチェックをいれたのですが
                それでいいのでしょうか?参考ページがよくわからないのですがweb.configの設定はしてみました。


    >ですか? その場合、その PC のブラウザで http://localhost/VB/album.aspx
    >にアクセスするとどうなりますか? 

    Internet Explorer ではこのページは表示できません。と表示されます。

    何か参考になるページ等がありましたら教えてください。

    2009年6月23日 13:22
  • > 何か参考になるページ等がありましたら教えてください。

    それは質問に答えてもらってからです。以前もそういうことがありましたが、質問に全く答
    えてもらえてなくて、話が噛み合わなくなるばかりのような気がします。

    2009年6月23日 13:48
  • 申し訳ありません。また見当違いな質問になってしまったようです。
    教えていただいたものをキーにWEB検索をして、これをすればいいのか?というものがたくさんヒットはするのですが、よくその内容事態もわからず
    見当違いな質問をまた投げているようで、過去の質問を読み返すと自分でも的外れなことをいっているのがよくわかります。

    .NET Framework2, IIS5.1, SQL Server2005Express Editionを使用しています。
    ACTとは何でしょうか?検索してもそれらしき言葉がでてきません。
    また、「ローカル」と「WEBサイトをIISで公開」の違いを調べたいのですが、これも、キーにして検索してもこれだと思う説明が載っている
    ページが検索できず、

    >それは「ローカル」の方ですよね? 「WEBサイトをIISで公開」の方は、別に
    >Web/DB サーバーを立てていると理解していますが、そちらの環境はどうなっ
    >ていますか?

    この質問の返事をどのようにしたらいいのかわからない状態です。「ローカル」の方?Web/DB サーバーを立てている?
    ここらへんの知識がつくページなどがありましたら教えていただきたいのですがよろしくお願いします。

    2009年6月23日 14:37
  • WEBをみて、接続できないにはいろいろな原因が考えられ
    もっと詳しく自分の状態を報告したいのですがもう一度報告させてください。

    Microsoft WindowsXP Professional Version2002 ServicePack3を使用しています。
    そのPCにIISと、VWD2008(付属 SQL Server2005Express Edition)をインストールしました。

    ファイアウォール例外処理
    名前:1433tcp ポート番号:1433  / 名前:WEB ポート番号:80
    を設定しました。
    コマンドプロンプトにてCD C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727<enter>aspnet_regiis.exe -i<enter>を実行しました。
    SQLServer構成マネージャーにてすべて実行中の状態にしました。

    Microsoft SQLServer Management Studio Expressを
    KOMI\SQLEXPRESS Windows認証にて接続し
    データベースにtestを作りテーブルt1を作成しました。

    VWDに「ファイル」→「新しいWEBサイト」でDefault.aspxにSqlDataSource1を作成し
    データソース:MicrosoftSQLServer(sqlClient)   サーバー名:KOMI\SQLEXPRESS
    Windows認証を使用する  データベース名の選択:testでtestConnectionStringと接続名をつけ
    GridViewの接続先にしました。

    web.configには書きが自動で追記されました。
    <connectionStrings>
    <add name="testConnectionString" connectionString="Data Source=KOMI\SQLEXPRESS;Initial
    Catalog=test;Integrated Security=Ture" providerName="System.Data.SqlClient"/>
    </connectionStrings>

    これでF5を実行するとhttp://localhost:ポート番号/VB/Default.aspx思ったとおり表示出力されます。
    これを「Webサイト」→「Webサイトのコピー」でC:\Inetpub\wwwroot\VBで右クリックをし
    プロパティセキュリティで追加ASPNETを作成してフルコントロールにし実行してみたところ
    このエラーメッセージの詳細をリモートコンピュータで表示できるようにするには、Web.config,<customErrors>タグで
    "modo"属性を"off"に設定してくださいと出たので<system.web>の下に<customErrors mode="off"/>を
    追加しました。そして、またF5実行してみたところ

    System.Data.SqlClient.SqlException:このログインで要求されたデータベース"test"を開けません。ログインに失敗しました。
    ユーザー’KOMI\ASPNET’はログインできませんでした。となります。

    気になったのですが ユーザー’KOMI\ASPNET となっていますがKOMI\SQLEXPRESSでなくていいのでしょうか?
    ログインできない問題とは全く関係ないでしょうか?
    ここが原因の場合どのようにしたら変更できるのでしょうか?

    2009年6月24日 9:57
  • XPマシンでIIS上でのASP.NETの実行時のユーザはそのマシンのASPNETという名前のユーザになります。
    SQL Server側にASPNETユーザにたいするアクセス権限(多分実行権限も)が設定されていないため、ログインできない、というエラーメッセージそのままの状況になっていると思われます。

    とりあえず動かしたい、ということならSQL Server側でASPNETユーザに対するアクセス権や実行権限をつけてあげれば動くでしょう。

    ただ、これは上記の環境での話で、実運用を行うサーバに展開するときには、そこのSQL Serverの環境にあわせた設定等をしてあげる必要があります。
    たぶん接続文字列等を変える必要がでてくるでしょうね。
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク komi1 2009年6月26日 13:41
    2009年6月24日 10:50
  • >とりあえず動かしたい、ということならSQL Server側でASPNETユーザに対するアクセス権や実行権限をつけてあげれば動くでしょう。

    権限のことを調べていたら
    ↓下記ページをみつけました。この設定をすればいいのでしょうか?
    http://msdn.microsoft.com/ja-jp/library/cc707350.aspx
    今、そのPCがないのでまた、日を改めて結果報告させてください。
    その他に必要な設定はあるでしょうか?
    2009年6月24日 12:05
  • 設定の内容はここにあることですね。
    SQL Serverのバージョンが違うので、利用するツール(や画面)も違っていると思いますけど、やらないといけないことは同じです。

    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2009年6月25日 3:57
  • ありがとうございます。
    SQLServerに接続することができました。

    また、AJAX(アニメーションのみ)がうまく実行できなくなってしまうという問題ですが、
    そちらのほうも、SQLServerの接続ができたと同時に解消されました。

    SQLServerですがもう少し理解をふかめたいのですが
    ------------------------------------------------------------------------
    >>それは「ローカル」の方ですよね? 「WEBサイトをIISで公開」の方は、別に
    >>Web/DB サーバーを立てていると理解していますが、そちらの環境はどうなっ
    >>ていますか?
    >この質問の返事をどのようにしたらいいのかわからない状態です。「ローカル」の方?Web/DB サーバーを立てている?
    >ここらへんの知識がつくページなどがありましたら教えていただきたいのですがよろしくお願いします。
    ------------------------------------------------------------------------
    この内容ですが、問題が解消した今でも内容がよくわからない状態です。
    このままではなんとなく動いたという状態なので
    ここらへんの知識がつくページなどがありましたら教えていただきたいのですがよろしくお願いします。
    2009年6月26日 13:41
  • >>それは「ローカル」の方ですよね? 「WEBサイトをIISで公開」の方は、別に
    >>Web/DB サーバーを立てていると理解していますが、そちらの環境はどうなっ
    >>ていますか?
    >この質問の返事をどのようにしたらいいのかわからない状態です。「ローカル」の方?Web/DB サーバーを立てている?

    ローカルというのは、一番最初の質問の1行目に komi1 さんが書いておられた「ローカルでつくったサイトを実行
    するとうまく動作するのですが」のローカルのことを言っています。 すなわち、Web アプリを作って、VWD の開発
    サーバーで実行した PC のことです。

    その次の行に「そのWEBサイトをIISで公開すると・・・」とありましたので、開発した PC とは別に、専用のサーバ
    ーを使って、それに作った Web アプリをインストールして公開しているのだと理解していました。専用のサーバー
    であれば、その OS, IIS, .NET などは、開発した PC のものとは違うはずで、それがどう違うかを聞いたのです。

    でも、どうやら「ローカル」も「WEBサイトをIISで公開」も同じ PC のようですね。「公開」の意味を誤解していた
    ようです。

    >ここらへんの知識がつくページなどがありましたら教えていただきたいのですがよろしくお願いします。

    Web サーバーをキーワードにしてググってみれば参考になるサイトは多数見つかると思います。

    2009年6月27日 0:44
  • ここらへんの知識がつくページなどがありましたら教えていただきたいのですがよろしくお願いします。

    WebサーバーとSQL Serverが異なるサーバーで動いている場合の例ですが、大変参考になると思います。

    [ASP.NET] ユーザー'(null)'のログインに失敗しました。エラーが発生した場合の対処法
    http://blogs.sqlpassj.org/matu_tak/archive/2004/06/16/2742.aspx
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年6月27日 1:19
    モデレータ
  • 気になったのですが ユーザー’KOMI\ASPNET となっていますがKOMI\SQLEXPRESSでなくていいのでしょうか?
    ログインできない問題とは全く関係ないでしょうか?
    ここが原因の場合どのようにしたら変更できるのでしょうか?

    これについては小野さんの回答で解決されていますので補足になりますが、KOMI\ASPNETは
    マシン名\ユーザー名であり、KOMI\SQLEXPRESSはマシン名\SQL Serverのインスタンス名であってユーザー名ではないため、KOMI\SQLEXPRESSではダメです。
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年6月27日 5:06
    モデレータ