• ベストアンサー

VB.NETでWebアプリを作成後に、サーバにアップするファイル

VB.NETにおいて、Webアプリケーションを作成しました。 作成場所はローカルマシンのwwwroot\abcde\ URL http://localhost/abcde/webform1.aspx にて動作を確認しました。 これをサーバにあげたいのですが、セキュリティを考えると全部そのままあげるのはよろしくないですよね?(プログラムソースもある為) ディレクトリ内には、_vti_cnfフォルダなど隠しフォルダがありますが、どれをアップさせればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

どのようなものを作っているのかわからないので何とも言いがたいのですが >http://localhost/abcde/webform1.aspx ↓ C:\Inetpub\wwwroot\abcde\ が開発環境であれば、単純な作りをしていれば ※[C:\Inetpub\wwwroot\]フォルダの中身 *.aspx *.htm *.html *.css *.画像の拡張子 [C:\Inetpub\wwwroot\bin]フォルダを丸ごと(*.pdbは不要) があれば動きます。 場合によっては *.htc などなども考えられたり・・・ 自動的に作成される隠しフォルダ[_vti_****]は、実環境では不要と思って結構だと思います。

Haule
質問者

補足

該当ファイルだけをサーバにあげてみました。 アップファイル ・binフォルダ(Calucu.dll) ・styles.css ・webform1.aspx リモート操作で、サーバ上から以下のURLで確認したところ http://localhost/abcde/webform1.aspx 解析エラー 型'Calucu.WebForm1'を読み込めませんでした。 エラー行 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="webFrom1.aspx.vb" Inherits="Calucu.WebForm1"%> というところでエラーがでてしまいました。 拡張子が.WebForm1なんてファイルはなかったのですが、なんでしょうか><

その他の回答 (5)

回答No.6

一つ気がついたのですが、 >ローカル作成プログラムがすでに仮想ディレクトリ指定になっていました。 それぐらいは・・・ ^^;;;;;;;; >wwwroot\abcdeが仮想ディレクトリになっている為、・・・エラーになるようです。 その都度、質問者が仮想ディレクトリを設定しているのだと、勝手に思っておりました。 >規定のWebサイトでできない理由が不明です。 とりあえず起動しているみたいなので、私の発言は終わりますね。 ここからは、教えてもらうより慣れることの方が大事だと思います。 セキュリティや権限を、「あーだこーだ」触っている内に、環境が整います。 もしくは、取り返しがつかないぐらいに壊れますw IISを学ぶ人は、何度もIISを入れ直しつつ、勘を身につけていっています。 論理も大事ですが、嗅覚を磨くことも結構大事だと思います。

Haule
質問者

お礼

何回もレスありがとうございました。 勉強してみます。

回答No.5

[規定のWebサイト]プロパティ と 作成した[仮想ディレクトリ]プロパティ のセキュリティが違うのかな? 設定次第でwebrootでいけるはずですよー >しかし、フォルダ名を”abcde"から”xyz"に変更すると、 フォルダを変更したりする場合は、IISリセットをお勧めいたします。 [スタート]→[ファイル名を指定して実行(R)] で iisreset を入力し実行です。 環境が整っていれば、これで動作可能だと思うのですが、、、 特別意識した作りでなければ、プロジェクトルート以下の階層は意識しなければならないですが、プロジェクトルートフォルダは関係ないはずです。質問者さんのソースもそのような作りであれば、環境設定で動作可能なはずです。 しかしその端末を見ないことには、はっきりと「これが原因」とは言い難いです。

Haule
質問者

補足

一つ気がついたのですが、 ローカル作成プログラムがすでに仮想ディレクトリ指定になっていました。 wwwroot\abcdeが仮想ディレクトリになっている為、Xyzに変更しちゃうと仮想ディレクトリ経由にならないとでエラーになっちゃう為xyzに変更するとエラーになるようです。 Xyzの問題はわかりましたが、やっぱり仮想ディレクトリでできて、規定のWebサイトでできない理由が不明です。 両方の認証設定を見てみましたが、両方とも統合Windows認証になっていました。 むむむ。難しい。

回答No.4

#3の訂正です。 >abcde.vbproj じゃなさそうですね。。。。 多分 Calucu.vbproj ですよね。。。 でそこで思ったのですが、 Calucu.vbproj をテキストエディタ(メモ帳など)で開いてみてください 下記の3つがありますでしょうか? AssemblyName = "Calucu" RootNamespace = "Calucu" StartupObject = "Calucu.(なし)"

Haule
質問者

お礼

ありがとうございました! できました。 Inetpub内にCalucuフォルダを作成し、全部ぶっこんで、仮想ディレクトリを割り当てて実行したらできました。(サーバ) ただ、なぜできたのか、理由がわからない。。 仮想ディレクトリだとできて、普通にwwwroot内におくのとなにが違うのでしょうか。 ちょっと、気持ちわるいので、理由をどなたかおしえてくださいー

回答No.3

>拡張子が.WebForm1なんてファイルは Inherits→inherit→引き継ぐという意味 継承がCalucu.DLLのWebForm1から行われるということで、拡張子ではありません。 「キーワード:インスタンス」 エラー内容は 「Calucu.DLLが見つからない」または「Calucu.DLLにWebFrom1」が見つからない ということです。 そのWebプロジェクトをソリューションエクスプローラで見ると abcde.vbproj  ├・・・・  ├styles.css  ├・・・・  └webform1.aspx となっているのですよね? abcde.vbproj  ├・・・・  ├styles.css  ├・・・・  \フォルダ   └webform1.aspx というように、ASPXがフォルダ階層の下にはなっていませんよね? なっていなければ、 \abcde  ├webform1.aspx  ├styles.css  \bin   └Calucu.dll という構成で、いけると思うのですが。。。 Calucu.DLLを再度コンパイルしてみてください。 (コンパイルされたらきちんとタイムスタンプもチェックしてみてください) それで再構成しても、同じですか?

Haule
質問者

補足

レスありがとうございます! >abcde.vbproj > ├・・・・ > ├styles.css > ├・・・・ > └webform1.aspx >となっているのですよね? そうですー ローカルにて abcdeフォルダ  ├webform1.aspx  \bin   └Calucu.dll これで動きました。 しかし、フォルダ名を”abcde"から”xyz"に変更すると、 解析エラー 型'Calucu.WebForm1'を読み込めませんでした エラー行 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="webFrom1.aspx.vb" Inherits="Calucu.WebForm1"%> といわれました。前と同じエラーです。絶対パスが書いてない行なのに、なぜ、エラーがでるのでしょうか。 サーバの方は前と現象がかわらなかったので、 ローカルabcde内のファイルをすべてアップしましたが、実行すると サーバーエラーで構文エラー web.configファイルの38行目 「<authentication mode="windows" />」 が、起きてしまいました。 わけがわからない>< ウィンドウズ認証がいけないっていってるんでしょうか

回答No.1

一つ一つのファイルをコピーするより、 Webセットアッププロジェクトを使うことをお勧めします。 たんなるファイルコピーだとファイルの権限なども直さないといけないし、IISの設定にも手を入れなければなりませんが、Webセットアッププロジェクトでインストーラーを作れば大体やってくれます。 アップするコンテンツも選択できるので、ソースファイルを除外することもできます。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vbconSetupProjects.asp
Haule
質問者

補足

セットアッププロジェクトで作成してみました。 プロジェクト出力グループの追加で、よくわからなkったので、以下の3つを追加しました。 ・プライマリ出力 ・ローカライズされたリソース ・コンテンツファイル セットアップファイルを作りサーバにいれ、 wwwroot\abcde\にインストールし、サーバ上で同じように(リモート操作)IEを立ち上げ http://localhost/abcde/webform1.aspx を実行したところ、 サーバーエラーで構文エラーがおきまして web.configファイルの38行目 「<authentication mode="windows" />」 がエラーになっているようです。 なぜなのでしょうか?

関連するQ&A