2008年3月26日 星期三

TransactionScope 之 timeout

發生了在 TransactionScope 內的 transaction timeout Type : System.Transactions.TransactionException, System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Message : The operation is not valid for the state of the transaction. Source : System.Transactions inner exception : Type : System.TimeoutException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Message : Transaction Timeout 解法一:TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TimeSpane(0, 5, 0)) //五分鐘。預設是一分鐘。 解法二:

2008年3月24日 星期一

Office 2007 轉存 PDF

之前,在 Office 2003 以前,要將 Word, Excel 轉存成 pdf,大概要買 Arcobat PDF 吧。 現在,在 Office 2007,可以安裝2007 Microsoft Office 增益集:Microsoft 另存 PDF 檔 是不用錢的。 PS: 原本Office 2007預設就附,後來被原廠抗議(因為會害它少了一筆收入),因此改成另外下載。

2008年3月21日 星期五

Windows integration WCF config settings

在使用WCF 之Windows 整合驗證時,一直發生問題。也很難解決 後來,原來是設定問題。拿掉下面的 proxyCredentialType 就好了。 到現在,我還是弄不懂 proxyCredentialType 是什麼意思。 <system.serviceModel> <bindings> <basicHttpBinding> <binding name="basicBinding"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" proxyCredentialType="Windows" /> </security> </binding> </basicHttpBinding> </bindings>

2008年3月20日 星期四

此服務的安全性設定需要 Windows 驗證,但裝載此服務的 IIS 應用程式未啟用該驗證

在本機(Vista) 開發 WCF程式 ok 後,部署到 windows server 2003 後,存取 http://server/virdir/service.svc時 發生錯誤 此服務的安全性設定需要 Windows 驗證,但裝載此服務的 IIS 應用程式未啟用該驗證。 堆疊追蹤: [NotSupportedException: 此服務的安全性設定需要 Windows 驗證,但裝載此服務的 IIS 應用程式未啟用該驗證。] System.ServiceModel.Channels.HttpChannelListener.ApplyHostedContext(VirtualPathExtension virtualPathExtension, Boolean isMetadataListener) +4074379 System.ServiceModel.Activation.VirtualPathExtension.ApplyHostedContext(TransportChannelListener listener, BindingContext context) +71 ... 不知道該怎麼辦? 英文的字是這樣寫的 Security settings for this service require Windows Authentication but it isnot enabled for the IIS application that hosts this service 經google 大師指點後,查到 http://blogs.msdn.com/appsec/ in this case you will need to set windows authentication and change the iis metabase manualy On your IIS server, start Notepad, and then open the \system32\inetsrv\Metabase.xml file located on the hard disk. In the section, locate the following line: NTAuthenticationProviders="NTLM" Modify the line so that it reads exactly as follows: NTAuthenticationProviders="Negotiate,NTLM" Check also the attribute of the solution vdir at the metabse.xml. 但好像還是不夠啊!

Share with Facebook