I have been running Outlook 2010 since it first came out and for the most part I've been pretty happy with it. Since I first started using it, though, I have had an issue with it. Apparently out of the blue it would sometimes crash (usually right in the middle of writing an important email) forcing Outlook to restart.
I spent some time researching this, and it appears that the crashes are most often caused by Outlook Add-Ins. After looking at Event Viewer, that is the next place I would look.
Go to File -> Options. That will bring up the Outlook Options window. Click on Add-Ins in the lower left-hand menu. That will list all the Add-ins that you have installed with Outlook.
The next step I would recommend is removing all of the Add-ins and then start adding them back one by one over time to narrow down what is causing the issue. To disable one or more Add-ins, at the bottom of the Outlook Options window on the Add-in Options page select 'COM Add-ins' beside Manage: and click the Go... button. That will bring up the COM Add-Ins window where you can uncheck Add-ins that you want to disable.
In my case the 'Send to Bluetooth' Add-in was causing the issue. once I disabled that I haven't had Outlook crash on me yet.
I hope this helps if you are experiencing the same issue that I was having.
This year OrcsWeb released our Windows Cloud Server product. As part of that offering, a base amount of disk transactions (I/O) is included, and then you are billed for any usage above that. A common question that arises is how to determine what is using the I/O on your server.
| Task Manager | Performance Monitor |
| I/O Reads | Process\I/O Read Operations/sec |
| I/O Writes | Process\I/O Write Operations/sec |
| I/O Read Bytes | Process\I/O Read Bytes/sec |
| I/O Write Bytes | Process\I/O Write Bytes/sec |
NOTE: The step by step instructions in this article are based on Windows 2008 R2. The I/O information pertains to earlier Operating Systems as well but the actual steps might be different.
I have seen numerous blogs written over the past couple of years talking about some of the challenges migrating a classic ASP application from IIS 5 or IIS 6 to IIS 7 or IIS 7.5. However I still see a lot of new questions to various forums about these same issues. I would like to provide some guidance on the first couple of steps that you should take to learn more about what is really going on with your application.
IIS7 Redirects
There is often a need to redirect a domain name to another URL and there are a few ways to accomplish this. One of the cleanest and simplest ways make this happen in IIS7 is to use a HTTP Redirect. First you set up a site in IIS7 with the proper bindings to ensure only traffic that you want redirected will be served by this site and then configure a HTTP Redirect.
On a side note, if you are looking to redirect more than just a domain name and need granular control over the redirect I suggest that you look at the URL Rewrite Module, http://www.iis.net/download/URLRewrite. We have this module available on all of our IIS7 servers here at OrcsWeb.
Heading back to the discussion on HTTP Redirects, below is a screenshot of the HTTP Redirect screen that comes up when you choose that option in IIS.
What follows is a summary of the options on the screenshot. You should note that IIS7 has a comprehensive online help where you can get additional information.
If you check the first box under Redirect Behavior, it will force all requests to redirect to the exact destination entered in the top box. If you don’t check that box then requests will be relative to the destination entered. For example, if you were redirecting http://www.orcsweb.com and the incoming request was http://www.orcsweb.com/service, based on the redirect entered above, requests would be redirected to http://test.orcsweb.com/testing with the box checked. Without the box checked then requests would be redirected to http://test.orcsweb.com/testing/service.
If you check the second box under Redirect Behavior, it will redirect requests only to the subdirectory that you specified in the redirect destination. For example, with the second box checked in the screenshot above, redirects would only be served from the /testing directory.
The status code drop-down box allows you to set one of three options:
The biggest reason I am writing this blog post is to mention the one caveat that I have run into when using a HTTP Redirect in IIS7. There appears to be some dependency on the physical path set in the advanced settings of the site. I know that sounds crazy but I have run into it a few times. Here is a scenario to explain this further.
Someone has more than one domain name pointing to a single website. Down the road they need one or more of those domain names to redirect somewhere else. The most convenient thing to do is set up a new site with the intention of using a HTTP Redirect once the site is setup. For consistency’s sake you point that other site to the same location as the original site. As soon as you setup the redirect it will set the redirect for every single site that is pointed to that same physical path in IIS. The way to get around it is to set each site to point to a different location.
I ran into an issue today trying to get the Quick Launch in WSS 3.0 to sort the document libraries I had in there alphabetically. This site is a sub site of the main SharePoint site. I thought I looked at all of the settings but nothing stood out to me.
I then turned to searching the Internet. I spent more time looking for a solution to this than I care to admit. I found quite a few posts about others having the same issue. I also found numerous solutions where I could add custom code, custom web parts, and so forth. I finally came across a post that had enough clues in it that I was able to find an easy solution.
First, go to the main page of the site that you want to set the sorting of the Quick Launch on. Next go to 'Site Actions' in the upper left corner, and select 'Site Settings.' Under 'Look and Feel' select 'Navigation'
You will note that under 'Sorting' the option is defaulted to 'Sort manually.' Even if the main site is set to sort automatically, this does not inherit by default to any new site created under it. This is the setting that you want to change, though, and it will affect everything in the Quick Launch. Other lists are set by the views by the list and not this setting.
Once you change that to automatic, you can then change a few Automatic Sorting options.
I hope this saves you some time and frustration when you are trying to change the sorting on WSS 3.0 Quick Launch items.
There are numerous issues that I have seen come up regarding IIS not working properly, and many of those are due to improper permissions. Many of these issues can efficently be tracked down by using Event Viewer -> Security. However, the default installation of Windows does not set everything needed to properly take advantage of this. Here are some settings that I recommend changing which will make initial troubleshooting easier.
We are first going to change the Local Security Policy by enabling failures of some policies. Go to Administrative Tools -> Local Security Policy. When the Local Security Settings window comes up, expand Local Policy and select Audit Policy. Select the following three policies and check the box for Failure to log failures of those events:
Audit account logon events
Audit logon events
Audit object access
Next you also want to turn on auditing for all the partitions on the computer if you are using Windows Server. To do that open up Windows Explorer, right click on a partition, and choose Properties. Click the Security tab in the properties window, then click the Advanced button. Select the Auditing tab in the Advanced Security Settings window, then click the Add button. Enter everyone and click OK. In the Auditing Entry dialogue box, check the Failed box on Full Control. That will cause all the boxes in the Failed column to be checked. Select ok all the way back out. Now disk level auditing is enabled.
You can look for security issues first when you have problems and enough information should now be logged to better assist you.
I came across this today and wanted to share. I have looked for this in the past with little success so maybe you will come across this post when you need it. Sometimes you need the default password that was assigned to IUSR_MachineName and IWAM_MachineName from when you initially installed IIS. That information is actually quite easy to get.
First make a copy of adsutil.vbs located in c:\inetpub\adminscripts, name it something else, and move it to a folder with locked down permissions:
copy c:\inetpub\adminscripts\adsutil.vbs c:\admin\adsutil_iispw.vbs
While you could certainly put the copy in the same location and delete it when you are done, I prefer to put it in a location that only administrators have access to so I can easily reference it in the future. It all depends on what your best practice security measures are.
Next edit adsutil_iispw.vbs and go to line 2592. It currently reads:
IsSecureProperty = True
Edit it so that it reads:
IsSecureProperty = False
Save adsutil_iispw.vbs and close it. Remember that any time you are editing script files, config files, etc., you are best off using Notepad so that extra characters and formatting are not saved to the file which would prevent it from running properly.
Now you can run the following to get the IUSR password:
cscript c:\admin\adsutil_iispw.vbs get w3svc/anonymoususerpass
or the following to get the IWAM password:
cscript c:\admin\adsutil_iispw.vbs get w3svc/wamuserpass
I hope this helps when you need it!
I am working on a project right now that requires me to send multiple values to another page from a GridView. The GridView control in ASP.Net 2.0 makes it easy to send a single value through the URL and it doesn't take very long searching the Internet to find many people who have provided this information. I might add that it is part of the tooltip for the Gridview if you go through the settings of editing the columns in Visual Studio 2005. There are also a multitude of suggestions from many people on passing multiple values but after I tried numerous options, I could not get any of them to work. I did stumble across an article from Azam Sharp that finally got me going in the right direction: http://www.gridviewguy.com/ArticleDetails.aspx?articleID=133. While the fundamentals of my application use the foundation of Azam's article, the final product is different enough from the article to make me include it here.
First we need to create a GridView with the columns that we need. For better control we will need to use TemplateFields.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Field1">
<ItemTemplate>
<asp:HyperLink ID="hlField1" runat="server" NavigateUrl='<%# FormatUrl(Eval("Field1"),Eval("Field2"),Eval("Field3")) %>' Text='<%# Eval("Field1") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Field2">
<ItemTemplate>
<asp:Label ID="lblField2" runat="server" Text='<%# Eval("Field2") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Field3">
<ItemTemplate>
<asp:Label ID="lblField3" runat="server" Text='<%# Eval("Field3") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
We also need to bind our data to the GridView. In this specific case I am using an XML file.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim oDs As New DataSet
oDs.ReadXml(Request.PhysicalApplicationPath + "myFile.xml")
GridView1.DataSource = oDs
GridView1.DataBind()
End Sub
You will notice in my GridView that I am calling a function, FormatURL. In this specific implementation it is accepting 3 values that it will build into the string that it returns.
Public Function FormatURL(ByVal str1 As String, ByVal str2 As String, ByVal str3 As String) As String
Return "pagedetail.aspx?id1=" & str1 & "&id2=" & str2 & "&id3=" & str3
End Function
The only thing left to do is to retrieve the querystrings on the new page, pagedetail.aspx in this case.
Dim str1 As String = Request.QueryString("id1")
Dim str2 As String = Request.QueryString("id2")
Dim str3 As String = Request.QueryString("id3")
As you can see, with this basic outline, there is tremendous power in the GridView and what you can do with it using a minimal amount of coding.
The other day I came across something out of the ordinary. After some major configuration changes to the server after a reboot it lost network connectivity. After looking at the server from the console, the Local Area Connection was missing from Network Connections and I couldn't connect to it through RDC. Checking system event viewer gave some information:
4292 - The IPSec driver has entered Block mode. IPSec will discard all inbound and outbound TCP/IP network traffic that is not permitted by boot-time IPSec Policy exemptions. User Action: To restore full unsecured TCP/IP connectivity, disable the IPSec services, and then restart the computer.
32777 - The LSA was unable to register its RPC interface over the TCP/IP interface. Please make sure that the protocol is properly installed.
12291 - SAM failed to start the TCP/IP or SPX/IPX listening thread.
Well I took the advice of the first error, disabled the IPSec service, rebooted the server, and voila! I was able to connect to the server. However Local Area Connection was still not showing in Network Connections. After some digging I found a solution:
Solution: (This involves a direct registry edit. Be very careful with changes that you make because incorrect changes could make your system unstable or inoperable)
Go into services and find Remote Procedure Call (RPC) Service. Change the account that it runs under to a Local System Account.
Open registry editor (regedit from a command prompt) and backup the following keys:
Once you have a backup of those keys, delete them.
Highlight HKEY_LOCAL_MACHINE and then select 'File' -> 'Load Hive...'
Browse to C:\Windows\Repair and select 'SYSTEM'
When asked for a key name, call it Temp
Locate and export the following keys:
Open those keys that you just exported in notepad, and search and replace the text to the appropriate path below: (I search for Temp\ControlSet001 and replace all instances with system\CurrentControlSet in both files)
Highlight the Temp hive file and select 'File' -> 'Unload Hive...'
Now double click both of the files above that you replaced the text in to add that information to the registry and verify that the keys are properly there.
Reboot the machine.
After you reboot, verify that you can now see Local Area Connection.
Now we need to change back the Remote Procedure Call (RPC) Service to Network Service.
Open registry editor and find the following key:
Edit the subkey, ObjectName and change the data to NT AUTHORITY\NetworkService
You will need to reboot once again for this final change to take effect. Everything should be back to normal. I continued to search and still don't know what causes this problem but I have see what seems to be quite a few people have the issue or similiar issues. Here is a link that has similar instructions to the ones I provided and was very helpful in resolving my issue: http://www.bensingerconsulting.com/support/helpdesk/issue_view.asp?ID=10&CATE=0
As I'm sure you know, WPF/E is a client side technology. However there are still come settings that need to be changed at the server level for WPF/E to work properly on your site.
For more detailed instructions and information including a script to make these changes quickly check out this link: http://msdn2.microsoft.com/en-us/library/ms752346.aspx
You can subscribe to Rick Barber feed via RSS to receive updates when new entries are posted.