[VB.NET]FtpWebRequestで(550)エラー
[現象]
FtpWebRequestで(550)エラーが発生。
550:要求されたリクエストはアクセス権限やファイルシステムの理由で実行できない。
[原因]
ログインユーザーのルートディレクト以外のディレクトリにアクセスしている場合に発生。
[対応]
%2fエスケープをパスの中に含める。
[例]
ftp://hoge.com/%2fbar/test.txt
ブログ「sanryuブログ」のカテゴリ「VB.NET」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。
前のカテゴリはSPREAD for Windows Forms 5.0Jです。
次のカテゴリはデータベースの設計について(私見)です。
[現象]
FtpWebRequestで(550)エラーが発生。
550:要求されたリクエストはアクセス権限やファイルシステムの理由で実行できない。
[原因]
ログインユーザーのルートディレクト以外のディレクトリにアクセスしている場合に発生。
[対応]
%2fエスケープをパスの中に含める。
[例]
ftp://hoge.com/%2fbar/test.txt
[現象]
ローカル環境でWebサービスに接続時に「リモート サーバーに接続できません。」が発生。
System.Net.Sockets.SocketException: 通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。
[原因]
ループの中でWebサービスに何度もアクセスするようなコーディングになっていた。
ソケット数の上限(ディフォルトで5,000)を超えたたために発生。
[補足]
Windowsのソケット最大数は、ディフォルトで5,000。
次のレジストリ エントリを操作して、最大 0xfffe (65534) まで設定可能。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort
[環境]
環境 :VB.NET 2005
プリンタ:A1が印刷できるプリンタ(プロッタ)
[現象]
下記でA1用紙を印刷すると、用紙の設定が反映されずディフォルトの用紙(今回はA4)で印刷される。
(1)PrintDocumentのPaperSizesからPaperSizeを取得
(2)PrintDocumentのDefaultPageSettings.PaperSizeに(1)で取得したPaperSizeを設定
(3)PrintDocument.Printで印刷
[原因]
多分、用紙サイズが"A1"以上場合は、カスタム用紙となる為、
PrintDocumentのPaperSizesから取得したPaperSizeを設定しても用紙の設定が反映されない。
[対応]
PaperSize クラスでカスタム用紙の設定をするを参考に用紙サイズを設定したが、印刷できなかった。
プラスで正しいPaperSize.RawKindを設定することで印刷できた。
'''''' 印刷サイズの取得 ''' ''' '''''' Private Function GetPrintingSizeFromPapaerName(ByVal paperName As String) As System.Drawing.Printing.PaperSize ’戻り値 Dim result As System.Drawing.Printing.PaperSize = Nothing 'PaperSizesから用紙を取得 For Each ps As System.Drawing.Printing.PaperSize In _tiffDoc.PrinterSettings.PaperSizes Dim psPaperName As String = ps.PaperName.Substring(0, 2) If paperName.Equals("A0") = True Then 'A0はカスタム用紙のインスタンスを生成 result = CreateA0PaperSize(ps.PaperName) ElseIf paperName.Equals("A1") = True Then 'A1はカスタム用紙のインスタンスを生成 result = CreateA1PaperSize(ps.PaperName) ElseIf psPaperName.Equals(paperName) = True Then 'PrintDocumentのPaperSizesから取得 result = ps Exit For End If Next ps Return result End Function
A0用紙のPaperSizeインスタンスを生成するメソッド。
'''''' A0用紙のPaperSizeインスタンスの生成 ''' ''' カスタム用紙名 '''''' Private Function CreateA0PaperSize(ByVal customPaperName As String) As System.Drawing.Printing.PaperSize 'name , width ,height Dim ps As New System.Drawing.Printing.PaperSize(customPaperName, 3311, 4681) ps.RawKind = 119 'A0のRowKind PageSetupDialogで調べた結果 Return ps End Function
A1用紙のPaperSizeインスタンスを生成するメソッド。
'''''' A1用紙のPaperSizeインスタンスの生成 ''' ''' カスタム用紙名 '''''' Private Function CreateA1PaperSize(ByVal customPaperName As String) As System.Drawing.Printing.PaperSize 'name , width ,height Dim ps As New System.Drawing.Printing.PaperSize(customPaperName, 2339, 3311) ps.RawKind = 120 'A1のRowKind PageSetupDialogで調べた結果 Return ps End Function
APIは使用したくなかったので印刷できたよかった。
[現象]
VS2005、IIS7.0 スマートクライアント構成で、
Webサービス接続時に
「既存の接続はリモート ホストに強制的に切断されました」が発生。
[原因]
IIS7.0がHTTP1.1 で接続時にKeep-Aliveがディフォルトで有効になっていた為に発生。
[対応]
Keep-Aliveを有効にする必要性がない為に、無効とした。
環境:VB.NET 2005 、スマートクライアント
<現象>
改行コードCRがLFに変換されている。
<参考サイト>
Webメソッドのstring型の戻り値に含まれる改行コードが変換されてしまう
WebMethod中の改行コード(CRLFがLFになっちゃう)
<戻り値の型>
今回、確認できたは、戻り値の型は下記
(1)戻り値がDataTableの場合は、改行コードが変換される。
(2)戻り値がDataSetの場合は、改行コードが変換されない。
'''
''' プリンタジョブを取得する
'''
''' プリンタ名
'''
'''
Public Shared Function GetPrintJobsCollection(ByVal printerName As String) As List(Of String)
Dim printJobCollection As New List(Of String)
Dim searchQuery As String = "SELECT * FROM Win32_PrintJob"
Dim searchPrintJobs As ManagementObjectSearcher = New ManagementObjectSearcher(searchQuery)
Dim prntJobCollection As ManagementObjectCollection = searchPrintJobs.Get()
For Each prntJob As ManagementObject In prntJobCollection
Dim jobName As String = prntJob.Properties("Name").Value.ToString()
Dim prnterName As String = jobName.Split(",")(0)
Dim documentName As String = prntJob.Properties("Document").Value.ToString()
If String.Compare(prnterName, printerName) = 0 Then
printJobCollection.Add(documentName)
End If
Next
Return printJobCollection
End Function
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |