奇怪~~ 明明將Data Channel Port Range的port設定在5000-5100 相對應的防火牆port也開了
怎麼用filezilla被動連線又出現 '無法取得目錄列表',當把防火牆關閉之後就可以正常取得了
我想問題還是在ftp server上,試著在IIS中將ftp server重新啟動,用netstat檢查一下
發現資料傳輸的port竟然在49319 =口=
怎麼會這樣~~~~ 我不是設定好了嗎? ftp也重開了啊~~ 怎麼會設定無效咧~~
弄了好久終於找到解決的方法了...
原來在IIS中將ftp重新啟動是沒有用的
要到 '服務' 中找到 'Microsoft FTP Service' 然後將此服務重新啟動就完成了
可惡 花了我這麼久的時間 T_T
2012年10月6日 星期六
2012年9月27日 星期四
jQuery ajax post 在IIS中無法存取 WebService (*.asmx)
有某段程式碼如下,在本機測試時沒問題,一放到IIS上就失敗
$.ajax({
type: "POST",
url: "/Services/CommonService.asmx/QueryNation",
data: '',
async: false,
success: function (result) {
var msg = $(result.lastChild).text();
alert(msg);
}
});
有兩種方式解決:
1. 在IIS上設定虛擬目錄,指向存放webservice的資料夾
2. 在web.config上設定webService區段,如下:
<!-- 設定允許Service存取 -->
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpPost" />
</protocols>
</webServices>
</system.web>
</configuration>
2012年9月14日 星期五
替IIS設定網站限制存取IP
先到微軟下載Web Platform後安裝執行
在安裝的項目當中仔細的找一下,會有一個叫IP 及網域限制的項目,找到後並安裝它。
接下來回到IIS設定,在左側點選要限制的站台,然後在右側的檢視功能畫面中找到IP位址及網域限制這個項目並點選開啟它,之後在右側的動作點選新增允許項目,在特定IP位址輸入您要允許的IP後按確定(當然也可以使用IP位址範圍來限制)。
當設定完成之後,必須還要限制除了剛剛設定好的IP之外,其他的任何IP都不得存取此站台,那就在右側的動作點選編輯功能設定,將未指定的用戶端的存取,設定為拒絕後確定。
完成!
注: IIS為7.5
在安裝的項目當中仔細的找一下,會有一個叫IP 及網域限制的項目,找到後並安裝它。
接下來回到IIS設定,在左側點選要限制的站台,然後在右側的檢視功能畫面中找到IP位址及網域限制這個項目並點選開啟它,之後在右側的動作點選新增允許項目,在特定IP位址輸入您要允許的IP後按確定(當然也可以使用IP位址範圍來限制)。
當設定完成之後,必須還要限制除了剛剛設定好的IP之外,其他的任何IP都不得存取此站台,那就在右側的動作點選編輯功能設定,將未指定的用戶端的存取,設定為拒絕後確定。
完成!
注: IIS為7.5
解決:使用者'IIS APPPOOL\ASPNET v4.0'的登入失敗
發生的原因主要是因為網站所使用的'應用程式集區',預設使用'ApplicationPoolIdentity'做為識別,因此當網站使用integrated security=SSPI字串登入SQL Server時就會發生此錯誤。
解決的方法有兩種:
1. 不要使用 integrated security=SSPI 做為驗證的方法,改用 User Id=”xxx”; Password=”ooo” 來登入資料庫。
2. 到IIS的應用程式集區,選擇您的網站所使用的集區,按右鍵 -> 進階設定 -> 識別,選擇NetworkService後按確定。接下來使用Microsoft SQL Server Management Studio,登入到您的SQL Server,找到安全性 -> 登入 -> 按右鍵點選’新增登入’-> 點選'搜尋'-> 輸入net ->點選’檢查名稱’ -> 在相符名稱當中選擇’NETWORK SERVICE’ -> 確定 -> 確定 -> 確定。接下來到伺服器角色把'sysadmin'打勾,按確定後完成。(當然伺服器角色的權限可依安全需求變更。)
解決的方法有兩種:
1. 不要使用 integrated security=SSPI 做為驗證的方法,改用 User Id=”xxx”; Password=”ooo” 來登入資料庫。
2. 到IIS的應用程式集區,選擇您的網站所使用的集區,按右鍵 -> 進階設定 -> 識別,選擇NetworkService後按確定。接下來使用Microsoft SQL Server Management Studio,登入到您的SQL Server,找到安全性 -> 登入 -> 按右鍵點選’新增登入’-> 點選'搜尋'-> 輸入net ->點選’檢查名稱’ -> 在相符名稱當中選擇’NETWORK SERVICE’ -> 確定 -> 確定 -> 確定。接下來到伺服器角色把'sysadmin'打勾,按確定後完成。(當然伺服器角色的權限可依安全需求變更。)
2011年11月29日 星期二
[asp.net] 永久登入,延長(自訂)表單驗證(Forms Authentication)保存時間
有些網站會提供記錄使用者登入密碼二週或永久
如pchome的 '記住我的密碼' 、 yahoo的 '保持我的登入狀態'
如pchome的 '記住我的密碼' 、 yahoo的 '保持我的登入狀態'
若使用Login控制項時,可以在Login控制項的LoggedIn事件裡面加入下面的程式碼:
// 使用Login控制項,在成功登入之後會自動幫我們建立驗證的cookie
// 所以我們必須拿出來重新修改,改成我們希望延長的時間
HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
// 從cookie解碼還原票證
FormsAuthenticationTicket oldTicket = FormsAuthentication.Decrypt(cookie.Value);
// 建立新的票證 註:DateTime.Now.AddYears(1)為票證到期日,也就是希望延長的期限
FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(oldTicket.Version,
oldTicket.Name, DateTime.Now, DateTime.Now.AddYears(1), oldTicket.IsPersistent, oldTicket.UserData, FormsAuthentication.FormsCookiePath);
// 使用新的票證來建立新的驗證cookie
string cookiestr = FormsAuthentication.Encrypt(newTicket);
HttpCookie newCookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
newCookie.Expires = newTicket.Expiration;
newCookie.Path = FormsAuthentication.FormsCookiePath;
// 最後將新的驗證cookie重新寫回給user
Response.Cookies.Add(newCookie);
-----完成-----
2011年11月24日 星期四
submit特定元素的資料
有時候因為某些不可抗拒的因素,而只能將某些html元素寫在某個form當中
例子如下:
<form id="form1" method="post" action="post_target.html">
<input id="txtName" type="text" name="Name">
<input id="txtTel" type="text" name="Tel">
<input id="txtAddr" type="text" name="Address">
<input id="btnSend" type="submit" value="送出">
</form>
此時一按下送出,就會將整個form1的資料送出去
如果希望只送出Name欄位的資料出去該怎麼做呢?
以下為了程式碼的精簡,使用了jQuery來處理dom物件,改寫後的code如下
<form id="form1"> // 將 method="post" action="post_target.html"拿掉
<input id="txtName" type="text" name="Name">
<input id="txtTel" type="text" name="Tel">
<input id="txtAddr" type="text" name="Address">
<input id="btnSend" type="button" value="送出" onclick="doPost();" />
</form>
<script type="text/javascript">
function pay() {
var name= $('#txtName').val();
var form = $('<form method="post" action="post_target.html"></form>');
form.append('<input type="hidden" name="Name" value="' + name + '" />"');
$('body').append(form);
form.submit();
}
</script>
2011年11月23日 星期三
[C#] long(Int64) 與 base64 互轉
// long(Int64) 轉 base64
var buffer1 = BitConverter.GetBytes(long.MaxValue);
string str = Convert.ToBase64String(buffer1);
// base6轉long(Int64)
var buffer2 = Convert.FromBase64String(str);
long val = BitConverter.ToInt64(buffer2, 0);
訂閱:
文章 (Atom)