Saturday, August 19, 2017

The SDK ‘Microsoft.NET.Sdk.Web’ specified could not be found

If you are working on Visual Studio 2017 with update 3, then you might have come across the error 'The SDK ‘Microsoft.NET.Sdk.Web’ specified could not be found' in netcoreapp1.1 for both web and console.

Unfortunately, I also landed up into this situation. So, one straight forward and temporary solution could be to edit the project file manually from Project Sdk = ”Microsoft.NET.Sdk.Web” to Project Sdk = ”Microsoft.NET.Sdk” and re-open the solution. Everything will work fine as expected. So, what are the reasons behind this error?

I explored many articles on MSDN forums as well as looked at github link and the primary reasons which are causing this error are:
  • Workstation is still holding an old preview version of CLI 1.0
  • Installed CLI version is correct but its path is incorrect.

Solution:
  • Uninstall all the older versions of CLI with 1.x as SDKs with version 1.x can break things
  • Verify the value of PATH- Open the developer command prompt and verify the value of the PATH variable and make sure that 'C:\\Program Files\\dotnet' appears on the path before any other entries that point to subdirectories of the dotnet folder.

If you are working with the web project, then you can also verify the SDK versions in global.json file and edit it manually if required.

Hope above post was useful for the newbies who just took Update 3 and are struggling to build their solution templates.

Friday, August 11, 2017

Is your client request missing from IIS log?

One can enable IIS logging by going to IIS Manager and checking the Enable logging checkbox. So, it means if IIS logging is enabled, then each and every request made by the client should be showing up in the IIS log. Isn’t it? But by any chance, if the request is not present in IIS log then the most probable reason would be either IIS was not running or may be request was not made.

But this statement is not 100% correct. Because whenever any request is made to the server, first it routes through HTTP.SYS then it comes to IIS. So, if anything is not visible under IIS logs, then one can see the logging for HTTP.SYS which is HTTPERR. The most common errors logged here are related to timeout or service unavailability.

The next question would be, where these logs are exactly saved?
You can find HTTPERR under C:\Windows\System32\LogFiles\HTTPERR

Interested in knowing more about HTTP.SYS, here you go.

Sunday, August 6, 2017

Unable to launch IIS Express from Visual Studio

Recently, while working on one of the web project, I came across a situation which ate up my almost an hour. Concern was, my IIS express was not launching automatically on running my web application from Visual Studio 2015. I tried various solutions like,
  • ran the Visual studio as an Administrator,
  • changed the port,
  • disabled the firewall,
  • reset the IISExpress folder.
But no luck :(
Then I thought, let's give a try by deleting the temporary folders which were created by Visual Studio and guess what? That worked for me. 

The culprit was the .vs folder which was the hidden folder in the project's root directory. One of my colleague checked-in that folder by mistake and as I was fetching the code for the first time, it came on my machine. Actual felon was the .suo file which was inside .vs folder. This .suo file contains user specific settings. Hence same user settings didn’t work for me. 

Solution - Deleting .vs folder did the trick :)

Happy troubleshooting !!!