質問するログイン新規登録

回答編集履歴

3

追記&訂正

2021/03/16 02:16

投稿

退会済みユーザー
answer CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  上の回答の (1), (2) が IIS Express と IIS でどう異なるかの情報を追記します。
18
18
 
19
- 開発マシンで Visual Stusio から ASP.NET Web アプリを IIS Express 上で実行したときのユーザー対話モードとワーカープロセスのアカウントがどうなるかですが、それぞれ以下の画像の赤枠と青枠の通りとなります。
19
+ 開発マシンで Visual Studio から ASP.NET Web アプリを IIS Express 上で実行したときのユーザー対話モードとワーカープロセスのアカウントがどうなるかですが、それぞれ以下の画像の赤枠と青枠の通りとなります。
20
20
 
21
21
  ![イメージ説明](c9d1148782b166ada56f0b5e3450ed4f.jpeg)
22
22
 

2

追記&訂正

2021/03/16 02:16

投稿

退会済みユーザー
answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > IIS expressでは期待したとおり動いているのですが、IISへ発行し、webサイトとして表示するとエラーは起こりませんが、返り値が空白となってしまいます。
4
4
 
5
- 開発マシンで Visual Stusio から ASP.NET Web アプリを IIS Express 上で実行したときは問題なく動くが、IIS にデプロイすると動かなくなるということの原因は、
5
+ 開発マシンで Visual Studio から ASP.NET Web アプリを IIS Express 上で実行したときは問題なく動くが、IIS にデプロイすると動かなくなるということの原因は、
6
6
 
7
7
  (1) IIS で動かしたときのワーカープロセスにアクセス権がない。
8
8
 

1

追記

2021/03/16 02:15

投稿

退会済みユーザー
answer CHANGED
@@ -8,4 +8,38 @@
8
8
 
9
9
  (2) IIS で動かしたときのワーカープロセスはユーザー対話モードで動いてない。
10
10
 
11
- のいずれかということがほとんどです。そのあたりから調査してみてください。
11
+ のいずれかということがほとんどです。そのあたりから調査してみてください。
12
+
13
+ **【追記】**
14
+
15
+ 下のコメント欄の 2021/03/16 11:01 の私のコメントで「回答欄に詳しい情報を追記しますので参考にしてください」と書いた件です。
16
+
17
+ 上の回答の (1), (2) が IIS Express と IIS でどう異なるかの情報を追記します。
18
+
19
+ 開発マシンで Visual Stusio から ASP.NET Web アプリを IIS Express 上で実行したときのユーザー対話モードとワーカープロセスのアカウントがどうなるかですが、それぞれ以下の画像の赤枠と青枠の通りとなります。
20
+
21
+ ![イメージ説明](c9d1148782b166ada56f0b5e3450ed4f.jpeg)
22
+
23
+ 開発マシン DESKTOP-6F7C2QA に surfe という管理者アカウントでログインし、そのアカウントで Visual Studio を立ち上げて ASP.NET Web Forms アプリを IIS Express 上で動かしたものです。
24
+
25
+ IIS Express のワーカープロセスのアカウントが surfe という管理者アカウントになっていて、それゆえ Environment.UserInteractive が ture すなわちユーザー対話モードになっているのが分かりますか?
26
+
27
+ 同じアプリのフォルダを開発マシンのローカル IIS でサイトに設定し、アプリケーションプールの名前を WebFromsEmpty に設定します。
28
+
29
+ ![イメージ説明](db77d0f2eefdff55b0f25c4fc76deea2.jpeg)
30
+
31
+ それをローカル IIS で動かすとユーザー対話モードとワーカープロセスのアカウントは以下のようになります。
32
+
33
+ ![イメージ説明](9c8aa2278494ba4e1f75cea5872746be.jpeg)
34
+
35
+ 以下の記事に書いてある通り、ワーカープロセスのアカウントが IIS AppPool\<アプリケーションプール名> となっているのが分かりますか? ユーザー対話モードでは動いてないというのが分かりますか?
36
+
37
+ アプリケーション プール ID
38
+ [https://docs.microsoft.com/ja-jp/previous-versions/ee886292(v=technet.10)](https://docs.microsoft.com/ja-jp/previous-versions/ee886292(v=technet.10))
39
+
40
+
41
+ IIS AppPool\<アプリケーションプール名> というアカウントにはアクセス権は一切ないのですが、ASP.NET が動くようにするには少なくともサイトのフォルダに対して読み取り権限を持ってなければなりません。
42
+
43
+ そこはどうしたかというと、以下の通りワーカープロセスのアカウントが属するグループ IIS_IUSRS に権限を与えています(注: wwwroot は特別でそれには最初からアクセス権が設定済みです)。
44
+
45
+ ![イメージ説明](785d6e74492d49fd5964fd785dc3a349.jpeg)