サポートフォーラム 利用規約(重要事項) 会社案内 お問い合わせ HOME
クレジット決済 口座振替申込 独自SSL
Windows Server 2003ホスティングプラン
技術情報リンク FAQ 料金・仕様一覧
ASP.NET FAQ

Q: フォルダの権限を変更するには どうしたらいいですか?

A:VERIO社提供のパーミッション変更ツールをお試し下さい。

http://ドメイン名:81/ControlPanel/Permissions/
★フォルダブラウズ、リードアクセス、FTPパスワードでの閲覧保護、書き込み許可などがセットできます。


Q: MS SQL Server 2000 にどうやって接続できますか?

A:次のパラメータをお試し下さい。

SQLサーバー名:sql1400.mssqlservers.com
データベース名:FTPユーザーIDと同一
ユーザーID:FTPユーザーIDと同一
パスワード:FTPと同じパスワード

★英文による説明はこちらです。


Q: ASP をどのようにして ASP.NETに変換できますか?

A: Microsoft(R)のサイトに、ASP をASP.NETに変換するドキュメントが公開されています。こちらを参照してください。

Migrating ASP Pages to ASP.NET

Migrating ASP Pages to Web Forms Pages

加えて、Microsoft Developer's Network  で、asp.net  検索してみてください。 最新の情報を入手することができます。


Q: ASP.NETのエラーページに詳細が表示されないのはなぜですか? いつも、次のようなエラー画面しか表示されません。

Server Error in '/appname' Application.

Runtime Error

デフォルトでは、エラーの詳細表示をしないようになっています。この設定は変更することが可能です。<customerros>タグをweb.configにルートディレクトリに作成してください。<customerrors>タグでは、"RemoteOnly"になっている"mode"属性を"Off"にする必要があります。

<!-- Web.Config Configuration File -->  

<configuration>    
  <system.web>
       
   <customErrors mode="RemoteOnly"/>
   
  </system.web>
</configuration>

(*)"defaultRedirect" 属性を変更することで、カスタムエラーページを表示させることが可能です。

<!-- Web.Config Configuration File -->  

<configuration>
 <system.web>
       
  <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
   
 </system.web>
</configuration>

A: デフォルトでは、ASP.NET アプリケーションは、カスタムエラーを表示しないようになっています。Visual Studio.NETは、 web.config を自動作成し、customErrorsの mode を "RemoteOnly"にするようです。詳細エラーを表示するには、web.configからcustomerrorsセクションを取り除くか、customErrors をOffにしてください。  

<customerrors mode="off"/>

このとき、エラーが発生すると、訪問者すべてがエラーの内容が表示されてしまうことに注意してください。

なお、このサービスでは、RemoteOnlyとOn "mode"の表示内容は、まったく同一となります。


Q: なぜ「configuration error 」が発生するのですか?

Server Error in '/appname' Application.

Configuration Error

リクエストに対して、コンフィグレーションに失敗するとこのエラーが発生します。個々のエラー内容を検証し、設定ファイルをもう一度見直してください。

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineOnly' beyond machine.config.

A: web.configに、このサービスで許可されていない、あなたのアプリケーションのための定義がなされている可能性があります。これらを削除またはコメントアウトしてください。サポートされているオプションは次の回答をご覧ください。 特に、Visual Studio.NETでデフォルトになっている、

<compilation
defaultLanguage="c#"
debug="true"
/>

は、このサービスでは指定できません。この定義はコメントにするか、削除しておく必要があります。このほかにも、次の回答も参照ください。


Q: ASP.NET の設定で、ユーザにより変更可能なものはどんなものがありますか?  

A: ASP.NET の設定オプションで、web.configにて、ユーザーが変更できるのは次のオプションです。これ以外は、セキュリティやパフォーマンスの理由により、このサービスでは変更できません。  

(*) Microsoftの、ASP.NET Configuration もご覧ください。 


Q: NET・web アプリケーションでカスタムエラーを表示できますか?  

A: Custom Error pages は、web アプリケーションの web.config の <customerrors> で設定できます。

<!-- Web.Config Configuration File -->  

<configuration>
 <system.web>
  <customErrors mode="On" defaultRedirect="error.aspx">
 <error statusCode="404" redirect="404.aspx" />
  </customErrors>
 </system.web>
</configuration>

この例では、あらゆる 404 (File Not Found) エラーは404.aspx にリダイレクトされます。それ以外のエラーはerror.aspxにリダイレクトされます。このサービスでは、customErrosの値が"On" と "RemoteOnly" は、まったく同じ結果をもたらします。modeを"Off" にしたとき、エラーメッセージがダイレクトに訪問者に表示されます。

(*)ここでのカスタムエラーとは、ASP.NET ページで発生したエラーだけが対象です。「ファイルがない」といった、ASP.NETに関係ないエラーは、通常のIISのエラーページが表示される点にご注意ください。


Q:  ASP.NETでサポートされているファイルタイプを教えてください。

A: ASP.NETでは、いくつかの新しいファイルタイプが導入されました。


Q: aspnetのクライアントディレクトリについて教えてください。?  

A: aspnet_クライアントディレクトリ には、ASP.NETの実行時にクライアントサイドで行われる値チェックを サーバーコントロールで利用するときに必要なJavaScriptファイルが格納されています。このフォルダは自動的に生成され、ASP.NETアプリケーションの実行に必ず必要というわけではありませんが、このディレクトリを削除すると、訪問者にエラーメッセージが表示されるようになります。


Q: CodeBehind 属性はサポートしていますか?

A: はい。 CodeBehind 属性を指定して、分離コードを作成することが可能です。詳しくは、Microsoft's Web Forms Code Model.


Q:  .NET で作ったdllはどこに格納したらよいですか?

A: すべてのASP.NET アプリケーションは、dllを利用するとき、/binディレクトリを検索するように配置されます。デフォルトでは、サイトのルート(wwwroot)が、アプリケーション ルートとなっています。Visual Interdev や、Visual Studio.NETを使うと、複数のアプリケーションを作成することができます。このとき、それぞれのアプリケーションは個別に/binサブディレクトリを持つことになります。

★ローカルのIISでアプリケーションを開発して、これをサーバー上にコピーするとき、「プロジェクトのコピー」がもっとも確実です。Visual Studio.NETの「プロジェクト」メニューの「プロジェクトのコピー」をご利用いただけます。


Q: .NET web アプリケーションをコンパイルするにはどうしたらいいですか?  

A:  <script runat=server> タグにより、.aspxファイルにサーバーサイドスクリプトを記述したら、後はこれをサーバーにアップロードするだけで、初回実行時にコンパイルが完了します。もし、CodeBehindページを作成している場合は、ソースコードを正しくコンパイルして、アセンブリ(dll)を適切な/binサブディレクトリに格納してください。Visual Studio .NET を利用するのがもっとも簡単です。  

Visual Studio.NET では、ローカルマシンで開発・テストした web アプリケーションをCopy Project 機能を使ってFrontPage Server Extensionsによってサーバーに展開することが可能です。 詳しくは、Visual Studio のドキュメントを参照ください。もうひとつの方法は、VS.NET webプロジェクトを直接サーバー上に作成してコンパイルすることです。

Visual Studio.NETをお持ちでない場合は、コマンドライン版の開発環境が利用できます。コマンドライン版、.NET Framework SDK (http://www.microsoft.com/netからダウンロードできます) を使ってコンパイル、サーバーにアップロードをすることも可能です。


Q: global.asax は、ASP のglobal.asa と何が違いますか?  

A: global.asax file は、 global.asa ととてもよく似ています。ユーザーは、webアプリケーションのルートに、global.asax を配置することができます。global.asax では、以前のASPでおなじみの、Application_Start, Application_End, Session_Start, and Session_End イベントがサポートされます。ASP.NET ではいくつかの新しい機能もサポートされています。詳しくは、Microsoftの.NET に関するドキュメントをご覧ください。


Q: web アプリケーションでセッション処理をするにはどうしたらいいですか?  

A: web.configの <sessionstate> をカスタマイズすることで、セッション処理を取り扱うことができます。このセクションでは、いくつかのオプションが指定できます。

web.configで <sessionState> セッションを指定したとき、これらのオプションが利用できます(上記にあるよう、一部使えないものがあります)。デフォルトの値は以下のとおりです。

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20" />


Q: ASP.NET でメールを送信するには?

 A: ASP.NETでメールを送信するには、 System.Web.Mail.MailMessage と、 System.Web.Mail.SmtpMail クラスを使います。以下にC#とVB.NETでの例をあげます。また、このとき、Web.Config に、<globalization>項目を追加するようにしてください。そうでないと、きっと文字化けします。

例:<globalization fileEncoding="Shift_JIS" />

SmtpMail.SmtpServerを "mail-out"に指定して、送信サーバーを直接指定することも可能です。

C#

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Mail" %>
<HTML>
 <HEAD>
  <title>Mail Test</title>
 </HEAD>
  <script language="C#" runat="server">
 private void Page_Load(Object sender, EventArgs e)
 {
  try
  {
   MailMessage mailObj = new MailMessage();
   mailObj.From = "sales@joeswidgets.com";
   mailObj.To = "joesmith@someisp.com";
   mailObj.Subject = "Your Widget Order";
   mailObj.Body = "Your order was processed.";
   mailObj.BodyFormat = MailFormat.Text;
     SmtpMail.SmtpServer = "mail-fwd";
   SmtpMail.Send(mailObj);
   Response.Write("Mail sent successfully");
  }
  catch (Exception x)
  {
  Response.Write("Your message was not sent: " + x.Message);
 }
}
 </script>
 <body>
   <form id="mail_test" method="post" runat="server">
   </form>
 </body>
</HTML>

VB.NET

<%@ Page Language="VB" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Mail" %>
<script runat="server">
  Sub doit(sender As Object, E as EventArgs)
     Dim Mailer As MailMessage

     Mailer = New MailMessage()
     Mailer.From = "???@???.co.jp"
     Mailer.To = "???@???.co.jp"
     Mailer.Subject = "日本語タイトル"
     Mailer.BodyEncoding = Text.Encoding.GetEncoding("ISO-2022-JP")
     Mailer.BodyFormat = MailFormat.Text
     Mailer.Body = "日本語本文メッセージ"
     
     SmtpMail.SmtpServer = "mail-out"
     SmtpMail.Send(Mailer)
     Response.Write("送信完了")
 End Sub
 </script>
<html
<head>
</head>
 <body>
  <form runat="server">
  <asp:Button id="submit" onclick="doit" runat="server" Text="送信"></asp:Button>
  </form>
 </body>
</HTML>


Q: 従来のASPでメールを送信するには?

 A: 従来のASPでメールを送信するには、CDOSYSが使えます。

<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows Library" --> 
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> 
<%@ LANGUAGE=VBScript Codepage=932 %>
<HTML>
<HEAD>
<title>メール送信サンプル</title>
</HEAD>
<BODY>
<%
Dim iMessage
Dim iConf
Dim Flds 

Set iMessage = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

Set Flds = iConf.Fields
With Flds
	.Item(cdoSendUsingMethod) = cdoSendUsingPort
	.Item(cdoSMTPServer) = "mail-fwd"
	.Item(cdoSMTPServerPort) = 25
	.Item(cdoSMTPconnectiontimeout) = 10
	.Update
End With
iMessage.Configuration = iConf
iMessage.From = "???@???.co.jp"
iMessage.To = "???@???.co.jp"
iMessage.BodyPart.Charset = "iso-2022-jp"
iMessage.BodyPart.ContentTransferEncoding = "7bit" 
iMessage.Subject = "日本語タイトル"
iMessage.TextBody = "テストメールです。"
iMessage.Send

Set iMessage = Nothing
Set iConf = Nothing
Set Flds = Nothing

Response.Write "メールを送信しました"
%>
</BODY>
</HTML>


Q: Windows 2003向けにメールを設定するには?

A: いわゆる ASPmailは、Windows 2003 Serverではご利用いただけません。ASPmailよりさらに柔軟で信頼性の高いコンポーネントであるCDO for Windowsをご利用ください。


Q: ASP.NET でファイルをアップロードするには?

A: ASP.NET でファイルアップロードを実現するには、 System.Web.UI.HtmlControls.HtmlInputFile、 System.Web.HttpPostedFile 、 HtmlInputFile などのクラスを利用します。HttpPostedFile クラスがHtmlInputFileクラスのPostedFileプロパティで指定されたファイルを実際にアップロードします。HtmlInputFileコントロールを利用するには、次のようにformのenctypeを指定します。

<form id="upload" method="post" runat="server" enctype="multipart/form-data">

なお、ファイルがアップロードされるディレクトリはanonymousユーザーに対してWrite属性が許可されていなければなりません。このサービスでは、/dataディレクトリおよびそのサブディレクトリがこの条件を満たします。

以下に、 C# と VB.NETでのサンプルを示します。

C#

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<html>
<head>
 <title>upload_cs</title>
</head>
<script language="C#" runat="server">
 public void UploadFile(object sender, EventArgs e)
 {
  if (loFile.PostedFile != null)
  {
   try
   {
    string strFileName, strFileNamePath, strFileFolder;

    strFileFolder = Context.Server.MapPath(@"data\");
    strFileName = loFile.PostedFile.FileName;
    strFileName = Path.GetFileName(strFileName);

    strFileNamePath = strFileFolder + strFileName;
    loFile.PostedFile.SaveAs(strFileNamePath);

    lblFileName.Text = strFileName;
    lblFileLength.Text = loFile.PostedFile.ContentLength.ToString();
    lblFileType.Text = loFile.PostedFile.ContentType;
    pnStatus.Visible = true;
   }
   catch (Exception x)
   {
    Label lblError = new Label();
    lblError.ForeColor = Color.Red;
    lblError.Text = "Exception occurred: " + x.Message;
    lblError.Visible = true;
    this.Controls.Add(lblError);
   }
  }
 }
</script>
<body>

<form id="upload_cs" method="post" runat="server" enctype="multipart/form-data">
<P>
 <INPUT type="file" id="loFile" runat="server">
</P>
<P>
 <asp:Button id="btnUpload" runat="server" Text=" Upload " OnClick="UploadFile"></asp:Button></P>
<P>
 <asp:Panel id="pnStatus" runat="server" Visible="False">
  <asp:Label id="lblFileName" Font-Bold="True" Runat="server"></asp:Label> uploaded<BR>
  <asp:Label id="lblFileLength" Runat="server"></asp:Label> bytes<BR>
  <asp:Label id="lblFileType" Runat="server"></asp:Label>
 </asp:Panel></P>
</form>
</body>
</html>

VB.NET

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<HTML>
<HEAD>
  <title>upload</title>
</HEAD>
  <script language="VB" runat="server"> Sub UploadFile(sender as Object, e as EventArgs)
   If Not (loFile.PostedFile Is Nothing) Then
    Try
     Dim strFileName, strFileNamePath, strFileFolder As String

     strFileFolder = Context.Server.MapPath("data\")
     strFileName = loFile.PostedFile.FileName
     strFileName = Path.GetFileName(strFileName)
     strFileNamePath = strFileFolder + strFileName
     loFile.PostedFile.SaveAs(strFileNamePath)


     lblFileName.Text = strFileName
     lblFileLength.Text = loFile.PostedFile.ContentLength.ToString()
     lblFileType.Text = loFile.PostedFile.ContentType
     pnStatus.Visible = True
  Catch ex As Exception
     Dim lblError As Label
     lblError = New Label()
     lblError.ForeColor = Color.Red
     lblError.Text = "Exception occurred: " + ex.Message
     lblError.Visible = True
     Page.Controls.Add(lblError)
    End Try
   End If
  End Sub
 </script>
<body MS_POSITIONING="FlowLayout">
<form id="upload" method="post" encType="multipart/form-data" runat="server">
<P><INPUT id="loFile" type="file" name="loFile" runat="server">
</P>
<P><asp:button id="btnUpload" onclick="UploadFile" runat="server" Text=" Upload "></asp:button></P> <P><asp:panel id="pnStatus" runat="server" Visible="False">
<asp:Label id="lblFileName" Runat="server" Font-Bold="True"></asp:Label>&nbsp;uploaded<BR>
<asp:Label id="lblFileLength" Runat="server"></asp:Label>bytes<BR>
<asp:Label id="lblFileType" Runat="server"></asp:Label></asp:panel></P>
</form>
</body>
</HTML>