Error opening Word document

I was getting this error while trying to open a Word document using Word 2010. These steps also resolve the problem when opening an Excel document.

Problem/Error

Error: “Word experienced an error trying to open the file.”

Solution

This is corrected a couple different ways. You can either correct a specific file, or you can change your Word (or Excel, etc) trust settings to permanently remove this security feature.

For one specific file:

  1. Go to the document properties in Windows Explorer (right-mouse click, select Properties).

  2. Click Unblock.
  3. Click OK.
  4. You should now be able to open the Word document.

To permanently change the setting for all files:

  1. Click File > Options
  2. Click Trust Center >Trust Center Settings
  3. Click Protected View
  4. Uncheck the following boxes:
    1. Enable Protected View for Files originating from the Internet
    2. Enable Protected View for Files located in potentially unsafe locations
    3. Enable Protected View for Outlook attachments

Resize iframe Using jQuery on SharePoint

JavaScript to resize an iframe on a SharePoint custom page.

<script type=”text/javascript”>
// id = jQuery id of the iframe to auto resize.
// lessHeight = the amount in pixels to subtract from the browser window height when resizing the iframe.
// minHeight = the minimum height of the iframe.
function ResizeIFrame(id, lessHeight, minHeight)
{
var newHeight = window.document.body.offsetHeight – lessHeight;
var iframeHeight = (newHeight < minHeight) ? minHeight : newHeight;
$(id).height(iframeHeight);
}

// Register an iframe to be auto resized.
function ResizeIFrameRegistration(id, lessHeight, minHeight)
{
// Resize the iframe with the browser window is resized.
$(window).resize(function() { ResizeIFrame(id, lessHeight, minHeight); });
// Resize the iframe when browser page is finished loading and ready.
$(document).ready(function() { ResizeIFrame(id, lessHeight, minHeight); });
}

ResizeIFrameRegistration(“#<%= pdf.ClientID %>”, 250, 300);
</script>

How to correct: The security validation for this page is invalid (FormDigest)

How to correct the security error on a custom SharePoint web page:
The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.

Short Answer:

Use SPUtility.ValidateFormDigest() and do not use AllowUnsafeUpdates.

A Less Desirable Solution (but more commonly used)

One way to get around this issue is to set the web’s (SPWeb) AllowUnsafeUpdates property to true. This is not ideal, especially when there is a more secure option.

A Better Solution

This method configures the web page to properly cache and revalidate the necessary credentials preventing the “security validation” error noted above. And, there is no need to set the AllowUnsafeUpdate spweb property to true.
Coding Steps:
Register the SharePoint web controls assembly in your aspx. Place this at the top of the .aspx file:
<%@ Register TagPrefix="SharePoint"
Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Place the FormDigest control on the .aspx page (I place it near the end of the page):
<SharePointWebControls:formdigest id="FormDigest1" runat="server" />
In your page code-behind, call the ValidateFormDigest() method during the page OnInit() event to revalidate the page security. It is important to call the ValidateFormDigest method as early as possible in the page cycle.
using Microsoft.SharePoint.Utilities
protected override void OnInit(EventArgs&nbsp;e)
{
	if (Page.IsPostBack)
	{
		SPUtility.ValidateFormDigest();
		base.OnInit(e);
	}
}
That’s it. Your custom SharePoint page should now successfully pass the security validation. It is also important to remember that you will need to also add the FormDigest control and call the ValidateFormDigest method in any custom user controls that are performing updates to SharePoint data.

References:

Automatically Connect Your Mac to Shared Windows Network Folders

This posting covers how to create a script (application) for your Mac to automatically connect to a shared Windows folder when you login to your Mac.

Creating the Script

  1. Open the Apple Script Editor: Applications > Utilities > AppleScript Editor
  2. Enter the script code below:
    (Note: if you copy/paste this code you may need to re-type all the “double quotes” to correct the syntax.)
  3. Click the Compile button to validate your code.

Script:

tell application "Finder"
if not (exists disk "SHARED") then mount volume "smb://MyServer/MyShare"
end tell

Saving the Script File as an AppleScript file

This will save the script in a format that can later be edited, if you chose to make changes.

  1. File > Save
  2. Specify a name for your script. For example: MapNetworkServers.scpt
  3. File Format: Script
  4. Run Only: Unchecked

Saving the Script File as an Application

This will save the file in an executable format. This is the file that will run at login.

  1. File > Save As
  2. Specify where you want to save your script file, and specify a file name. For example: MapNetworkServers.app. I created a folder called “Commands” in my Documents folder where I store my script and application file.
  3. Set the File Format to Application.
  4. Check the Run Only check box. This will cause the script to run and exit.
  5. Click Save.

You should now have two files:

  • MapNetworkServers.scpt – keep this file so you can modify this script in the future.
  • MapNetworkServers.app – this is the script you will use to configure to execute when you login.

Configure the Script to Run at Login

  1. Go to System Preference > Accounts
  2. Select the appropriate user; the user you want this script to run when they login.
  3. Select the Login Items tab.
  4. Click the “+” button at the bottom of the list of applications to add a new startup application.
  5. Browse to your MapNetworkServers.app file and select it.
  6. You should now see it in the list.
  7. Optional: You can check the Hide check box, if you like. I suggest not doing this until you know your script is working correctly.

That’s it. Your shared Windows server folders should now be mapped automatically when you login.

This sample script only maps one folder, the “MySharedFolder” folder. However, on my home network I have several folders on the same server that exist. If you have previously selected all the shared Windows folders (using Finder > Go > Connect to Server), and provide your login credentials to that server, all the shared folders on that server will appear; which is ultimately what I want anyway. This also allows your script to be shorter and easier to maintain by having to map one shared folder in your script instead of having to write a line of code for each and every shared foler on that Windows server.

Resources:
http://support.apple.com/kb/ht1568

Map Mac Parallels "Delete" key to "Backspace"

pd6fm_half_macbookParallels is a software product that allows users to run Windows 7 on their Mac computer. I must say, it works pretty darn well. The only real annoyance I have encountered thus far is how Parallels maps the “Delete” key. This makes the Delete and Backspace keys confusing. The Apple Mac “Delete” key and the Windows “Backspace” key are located in the same (approximate) location on the keyboard; and both keys even function the same on a Windows computer compared to a Mac computer. They delete the characters to the left of the cursor.

However, for those who use Parallels to host a virtual Windows 7 machine on their Mac computer, the Mac keyboard “Delete” key deletes the characters to the right of the cursor, which was driving me crazy. The user must press fn+Delete to perform the standard Windows backspace to delete the characters to the left. This may only be a problem for people using a Mac notebook keyboard or an external Mac wireless keyboard. I expect this is not a problem for those who use an external Windows keyboard on their Mac – assuming those people even exist.

How to Re-Map the Delete Key in Parallels

Here are the steps to change (re-map) the “Delete” key to the standard Windows “Backspace” key on your Windows 7 machine running in Parallels. I prefer this because it provides a consistent action for the “Delete” key – it always deletes the character to the left of the cursor regardless of whether I’m using Windows (named “backspace”) or Mac OS (named “delete”).

1)  Open the Parallels Preferences. You can find the Preference menu option by holding the “option/alt” button and clicking the red Parallels icon ‘||‘ at the top of your Mac desktop.

2)  Press the “+” button at the bottom of the shortcuts list to add a new ‘shortcut’.

3)  In the “From” key section, press the Mac “Delete” key. The word Delete will appear.

4)  In the “To” key section, select the “Backspace” key in the drop down box.

Now your “Delete” key will perform like a Windows Backspace key, deleting the characters to the left. Remember, you can also press fn+Delete to perform the standard Windows Delete key to delete the characters to the right.

Apple Terminology and Keys

Delete
(deletes the characters to the left of the cursor)
Mac%20Delete

Forward Delete
(deletes the characters to the right of the cursor)
Mac%20fn%20(function)Mac%20Delete

References:

Apple Mac Keyboard

Pasted%20Graphic%202

Windows Keyboard (typical layout)

pc-keyboard-all-gray2

URL Redirect Work-Around for WordPress.com

Summary: Redirect specific blog postings from your old blog to the respective page on your new WordPress.com blog. This covers how and when you can use this URL Redirection work-around for WordPress.com.

Downloads: URLRedirect.html template file (zip)

I recently relocated my blog to WordPress.com. And I must say, I have been very happy with what WordPress.org and WordPress.com have to offer. I believe WordPress is without question the best, most complete free blogging software available. For the blog author, WordPress provides a wide range of management, statistics, themes, and more. For the reader, WordPress can be consumed on a variety of devices with ease like the personal computer, mobile devices like iPhone and iPod Touch, and the newest form factor – iPad. WordPress has delivered everything I have wanted and more – with one exception… URL Redirection.

Anyone creating a blog for the first time or seasoned bloggers who have no need to move existing content (blog postings) from their old blog will not need URL redirection. But for those who are moving content from their old blog to a new blog on WordPress, and have their own domain name, URL Redirection would provide a better, more seamless browsing experience for readers.

We’ve all been there, clicking on a search result link expecting to find an article only to receive the “Not Found, Error 404” page instead. This is frustrating to say the least. After a bit of searching it is clear that WordPress does not support URL Redirection. However, I have created a work-around for WordPress.com bloggers to allow their readers to find (via redirect) an old article URL that has been relocated to their new WordPress.com blog.

Overview of the URL Redirect Work-Around

I admit, this “work-around” is not automatic, which would be best; but it does work. And, it’s an easy (and not very technical) way to redirect a user to the correct page – that WordPress.com will allow. In short, WordPress.com does not allow bloggers to use JavaScript, and I fully understand why. I have no complaints about that since WordPress.com is a shared hosting environment. But a simple bit of JavaScript is all that is needed to address this issue.

Domain Redirection

First, lets cover exactly what domain redirection (not URL redirection) is. Using the WordPress “domain redirection” feature only addresses half the solution to a complete redirection experience for the user. As I mentioned before this is not ideal, but this is what WordPress.com provides using their “domain redirection”. With domain redirection, when a user/reader clicks on a link/URL pointing to your old blog (for example: http://www.myoldblog.com/page-x), the domain redirection tells the user’s browser to use your new domain name instead and “redirects” the user to the new domain (for example: http://www.mynewblog.com/page-x). The reality is that this domain redirection is really defined at your domain DNS (Domain Name Service) host – the network company where information about your domain name is defined and managed. Your DNS host (GoDaddy and Network Solutions are two popular companies) is where you define/configure the IP address for the server where your blog is hosted/located, which in this case the IP address would be whatever WordPress.com says to use for their severs.

What WordPress.com is doing when you purchase their Domain Redirection feature (along with the annual fee) is nothing more than telling their WordPress.com servers to accept any incoming browser request that uses your new/custom domain name and display your blog on WordPress.com. So, Domain Redirection gets the reader to your new blog – but not to the correct page. Instead, what the reader will get is the “Not Found, Error 404” page. Yes, this does redirect the reader to your new blog, but not to the information or page you or the reader would like. This is completely useless to the reader, and frustrating for the blog owner.

To summarize, Domain Redirection requires two steps:
1 – Configure your domain name at your DNS host to point to the WordPress.com blog server(s).
2 – Configure your blog server to accept and display your blog when a user/browser uses your new domain name.

Before I cover how implement this, I first need to talk about what the user will experience using this work-around.

What is the user experience?

When a reader clicks on a link that is pointing to an article on my old blog, the reader is automatically redirected to a “Not Found, Error 404” page on my new WordPress.com blog. Here is a full screen snapshot of what the “Not Found, Error 404” page looks like. You’ll notice my “Redirect now” link off to the right, which I’ll talk about in a moment.

image

On the right column of my blog you’ll notice a section titled “Getting ‘Not Found, Error 404’?” like the image below. If the user clicks the “Redirect now” link they will be redirected to the correct link on my new WordPress.com blog.

image

When the reader encounters the “Not Found, Error 404” page, hopefully the reader sees the “Getting ‘Not Found, Error 404’?” widget on the right side of my blog. So far, indications are good that readers are seeing and using this link. The number of clicks to this “Redirect now” link are increasing daily.

Remember, the easier it is for readers to find what they are looking for on your blog, the more likely they will bookmark, share, or even link to your blog from their blog; which in turn increases your blog’s search engine rating, and increases traffic to your site.

How Does It Work

When the user clicks on the “Redirect now” link, an HTML page is loaded that attempts to identify what URL the reader is looking for, and then it redirects their browser to that page. This Redirect.html file must be stored (hosted) somewhere external to WordPress.com.

I use Dropbox.com to store my HTML file. It’s free and makes it very easy to edit the file locally and save it to the server for testing. This is because Dropbox.com automatically syncs any changes to the Dropbox.com server.

When the Redirect.HTML page is loaded, it executes a small bit of JavaScript in the readers web browser. The JavaScript inspects the URL (address) currently in the reader’s web browser, which is the URL (link) the reader clicked to get to your blog. Chances are the old URL contains enough information (most likely the end portion of the URL) to identify what article the user is looking for. Getting Google, Bing, Yahoo, and every other blog around the world to correct their links to my blog is simply not an option, and it shouldn’t have to be.

I understand and agree that this is not the optimal solution. The optimal solution will have to be implemented as a feature in the WordPress software. For those that host their own WordPress server, they can build (modify) this directly into their “Not Found” page and redirect the reader automatically, without the reader having to click anything. However, for those who use WordPress.com, this will give your readers a second chance to find the article they were originally aiming for.

WallAndBeaverCleaver

Wally: Golly, Beaver. Wouldn’t it be swell if WordPress.com provided bloggers the ability to map URL Redirects?

Beaver: Gosh, Wally. That would make WordPress.com the best place to host a blog in the whole wide world!

Please excuse my sorry attempt at humor. :)

A Quick Demonstration

Here is a quick demonstration on how the URL Redirect works on my WordPress.com blog. Below is a URL from my old blog (www.crsw.com). Since I have configured a “domain redirection” for my “www.crsw.com” domain, it will connect to my new blog (blog.crsw.com) on WordPress.com. Click on the link below to open a new window/tab to demonstrate. (This simulates an old link similar to that found on someone elses blog or in search results from Bing or Google.)

http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=42

You will get the “Not Found, Error 404” page. The browser was redirected to the “Not Found, Error 404” page because my WordPress.com blog does not have a page at “…/Posts/Post.aspx?ID=42”. You will notice that even though the URL you clicked on started with “www.crsw.com”, your browser URL/address now shows the URL starts with “blog.crsw.com”. So the domain name has been correctly redirected to “blog.crsw.com”, but the rest of the URL is still wrong and points to a non-existing page (Post.aspx). The URL in your demonstration browser should now look like this:

http://blog.crsw.com/mark/Lists/Posts/Post.aspx?ID=42

So, the “domain” redirection is working correctly, but the full URL Redirection does not happen and will not happen automatically since URL Redirection is not supported on WordPress.com. The new location for this article on my new WordPress.com blog is now located at the “I’m mentioned (twice)…” link below. What we need is to somehow tell WordPress.com or the web browser that when a reader tries to browse to my blog and the URL contains a unique value of “ID=42”, then automatically redirect the reader to the URL below.

Since we cannot automatically redirect the user, we must ask the user to click on a link, that will in-turn redirect the user to the following page. So, now if you click the “Redirect now” link on the right side of the “Not Found, Error 404” page you got earlier, you should be redirected to the following page.

How To Implement This On Your Blog

The great thing about this work-around is – it’s pretty easy to implement and requires very little technical knowledge! If you can blog, chances are you can do this. Gathering your old URLs will be 90% of the effort.

Here is an overview of what is required:

  1. Gather a list the URLs you want to map from your old blog along with the new URLs on your WordPress.com blog. Remember, your old blog does not need to exist. More on that below.
  2. Redirect your custom domain to WordPress.com, and configure your custom domain on WordPress.com. There is a nominal annual fee. Read more about it.
  3. Create your custom Redirect.html page. I have a template for you to use in the download section of this article. This HTML file defines your old-to-new URL mappings.
  4. Place a “Text” widget on your blog containing your “Redirect now” link.

1 – Gathering a list of old and new URLs

If your old blog is still up and running, you can easily obtain the old URLs. For those that do not have their old blog running, you can probably obtain the old URLs from Google and Bing. I suggest you check both. You do this by running a search on both Bing and Google that limit the results to only your domain. You perform a search on both search engines for: “site:yourdomain.com”. This will list all the results in the search engine that point to your domain. Many of these will likely be old URLs. Gather all the URLs you want to redirect listing the old URL and the new URL next to each other. When your list is complete, you will have completed about 90% of the work effort.

2 – Redirecting your custom domain to WordPress.com

For this step I ask that you refer to WordPress.com online help for custom domains (Read more about it.), and WordPress.com support.

3 – Create your custom Redirect.html file

The Redirect.html page is very basic HTML page. Most of the content in this page is the JavaScript that performs the redirection. The only thing that must be modified is the LoadRedirects function, and a section at the very end of the file. Be sure you don’t change anything else. The LoadRedirects function is where you define your URL Redirect mappings. Each redirect mapping is defined by a AddRedirect statement.

The AddRedirect statement has two parameters. The first parameter defines the URL (unique segment or portion) found in the old URL. This does not need to be the full address of the URL. It only needs to be something unique to that old URL. In my case, the end of my old URLs contained a unique “ID=” value. The example below shows an AddRedirect where the old unique URL value is: “ID=42”. The second parameter defines the full URL to the post/page on your new WordPress.com blog. This must be a complete URL to new posting on WordPress. This is where the reader will be redirected to. Here are two sample AddRedirect statements.

this.AddRedirect("ID=42", “https://blog.crsw.com/2008/05/01/im-mentioned-twice-in-an-msdn-magazine-article-sweet/”);
this.AddRedirect("ID=4", “https://blog.crsw.com/2006/08/23/sharepoint-tcpip-ports-used/”);

One more important point. When sequencing your old URL segments/identifiers, be sure to place the more specific old URLs first. Using the example above, the “ID=42“ is defined before the statement containing “ID=4”. If “ID=4” is placed before “ID=42”, then the new URL defined with “ID=4” will always be used when the reader clicks a link with “ID=4”, or “ID=42”, or “ID=400”, or “ID=4123”, or any old URL containing “ID=4…”.

The very end of the Redirect.html file also needs to be modified to contain your domain name, and optionally a custom Not Found page URL of your choice.

// ************************************
 // MODIFY THIS STATEMENT to contain the your domain. This defines a
 // custom URL to return when a URL Redirect mapping is not defined.
 // This URL does not need to exists since the standard WordPress
 // "Not Found, Error 404" page will be displayed if it does not exist.
 // ************************************
 var mgr = new RedirectManager("http://YourDomain.com/RedirectNotFound", false);

4 – Place a “Redirect now” link on your blog

Place a Text widget near the top of your blog so that your “Redirect now” link is easily seen. You can copy this code below into your Text widget to create something similar to mine. Be sure you replace the href value with the full URL to your Redirect.html file. If you are using Dropbox.com you need “copy the public link” and paste that URL (link) to the href value.

I recently moved my blog to this site. So, if you get a <span style="color:#ff0000;">"Not Found, Error 404" message, chances are the post you are looking for is still here on my new blog.

* Click here to <span style=”color:#ff0000;”>http://dl.dropbox.com/u/NUMBERS/Redirect.html>Redirect now.

For Those Interested In More Detail…

For those of you interested in a more detailed explanation I have take the time to elaborate, and opine, on a bit more detail.

URL Redirection vs. Domain Redirection

Do not confuse “URL redirection” with “domain redirection”. WordPress does support “domain” redirection. If you have your own domain name (i.e. mydomain.com) or sub-domain name (i.e. myblog.mydomain.com), WordPress.com will allow you to configure your blog have its own domain, for a nominal annual fee. To be honest, most of this configuration is really done through your domain registrar to point your domain name to WordPress.com. But WordPress.com must also be configured so that it knows what WordPress.com blog to display to the reader when a custom domain name is used. This is still necessary, so Domain Redirection will still be used, but this does not entirely solve the problem of getting your reader to the correct article on your new WordPress.com blog. Instead they get hit a dead-end: “Not Found – Error 404”.

Unique URLs (Not Found – Error 404)

So, domain redirection does at least get the reader to the new web site on WordPress.com. This is all well and good, but… as most of you already know, each posting on your old blog has a unique URL (web address); which will almost certainly be different than the new URL for that same posting on your new WordPress.com blog.

So, WordPress has really done little to help redirect the reader. It will merely get them to your new blog and present them with the mostly annoying and useless “Not Found – Error 404” page. This is not a very nice user experience. We’ve all encountered this before. What do we end up doing? We skip this site and go to the next link in our search results. This is because none of us wants to waste time searching for something we aren’t even sure exists. This is a missed opportunity the blogger/author (and the blogging software) should address.

JavaScript Not Allowed

WordPress.com does not allow for any JavaScript, which is completely understandable for security (and support) reasons. There is no argument from me on this point.

Keep in mind, although WordPress.com does not allow JavaScript for bloggers, WordPress most certainly uses JavaScript to provide much of the rich administrative features in WordPress.

SharePoint Feature Activation Extension Methods

Extend your SharePoint Features collection with an IsActivated, EnsureActivated, and EnsureDeactivated methods. These extensions will be available for activating or deactivating features for a Web, Site Collection, Web Application, and Farm.

public static class SPFeatureCollectionExtensions
{
  public static bool IsActivated(this SPFeatureCollection features, Guid featureId)
   {
    return features.Cast<SPFeature>().FirstOrDefault(f => f.DefinitionId.Equals(featureId)) != null;
   }
  public static bool IsActivated(this SPFeatureCollection features, string featureId)
   {
    return IsActivated(features, new Guid(featureId));
   }
  public static void EnsureActivated(this SPFeatureCollection features, Guid featureId)
  {
    if (!IsActivated(features, featureId))
      features.Add(featureId);
  }
  public static void EnsureActivated(this SPFeatureCollection features, string featureId)
  {
    EnsureActivated(features, new Guid(featureId));
  }
  public static void EnsureDeactivated(this SPFeatureCollection features, Guid featureId)
  {
    if (IsActivated(features, featureId))
      features.Remove(featureId);
}
public static void EnsureDeactivated(this SPFeatureCollection features, string featureId)
  {
    EnsureDeactivated(features, new Guid(featureId));
  }
}

Usage Examples:

web.Features.IsActivated("999974A3-E65F-4426-AC75-FAD64EF49999");
site.Features.EnsureActivated("999974A3-E65F-4426-AC75-FAD64EF49999");
webApp.Features.EnsureActivated("999974A3-E65F-4426-AC75-FAD64EF49999");
farm.Features.EnsureActivated("999974A3-E65F-4426-AC75-FAD64EF49999");

Source Control Explorer is disabled, grayed out

If your Source Control Explorer menu link is disabled (grayed out), you need to be sure the default source control plug-in for Visual Studio is set to Team Foundation Server.

This is usually just a simple oversight for those of us that use TFS quite often. But since this has happened to me more than once and I don’t seem to remember the fix as quickly as I would like, I have noted it here for easy recall and for anyone else.

  1. Open Visual Studio
  2. Select the menu: Tools > Options
  3. In the Options dialog select: Source Control > Plug-In Selections
  4. Select Visual Studio Team Foundation Server

Maybe the action of posting this will be enough to help me remember.  :)

How to setup “Meet Now” for LiveMeeting 2007

Summary: This article discusses how to configure and use the Meet Now feature in LiveMeeting 2007.

    1. Start the LiveMeeting rich client desktop application.
      Note: You will most likely not see the Meet Now button on your screen, yet.
    2. Click the options menu link in the upper right corner.
    3. Select the “Open User Accounts” menu option.
    4. Enter the following information:
URL: https://www.livemeeting.com/cc/YOUR COMPANY
Check the “I enter a user name and password…”.
Enter your LiveMeeting web site user name and password.
    1. Click the Test Connection button. You should see the following success message:

Click OK to close this message box.

    1. Click OK on the User Accounts dialog to close.
    2. You should now be returned to the main Live Meeting welcome screen.
    3. Click on the “Meet Now Options” link.
    4. Your LiveMeeting Meet Now Options window should be displayed.
    5. Make any changes to set your preferences. I use the following configurations options in the Entry Control section:

I use a custom/fixed Meeting Key for both the Presenter and Attendee roles. I do this only because I also enable the Meeting Lobby.

    1. Under the Meeting Lobby section:
      Note: You may need login to your LiveMeeting account using your web browser to configure this Meeting Lobby option. It appears to be disabled in this dialog at the time of this posting.

I enable/check the Meeting Lobby. This allows me to selectively grant users access to my Meet Now meetings while keeping a consistent and easy to remember meeting key for me and my clients. It also allows me to create a consistent URL for my Meet Now email signature link. See my post on Create a Live Meeting ‘Meet Now’ link in your email signature. This has proven to be very convenient for me and my clients.

  1. Click OK or Cancel to close the options dialog.

Using the Meet Now link:

Now, when you start your LiveMeeting rich client application, you can simply click the “Meet Now” button to start a new LiveMeeting and instantly have Meet Now session ready to use.  Click “Continue” on the standard notice message.

Create Custom SharePoint Web Service WSDL and Disco ASPX Files Automatically

I just completed a SharePoint developer tool called SPDev.exe. The initial purpose of this utility is to auto-generate the web service WSDL.aspx and Disco.aspx files needed for a custom SharePoint web service.

icon_shout Automatically generate your SharePoint disco.aspx and wsdl.aspx files in seconds!
icon_shout No need to manually copy or deploy your .asmx first!
icon_shout No manual editing!
icon_shout No Disco.exe needed!
icon_shout Automatically recycles the application pool (ensuring the newest assembly is loaded)!
icon_shout Automatically deploys the final SharePoint web service files (using the -deploy option)!
icon_shout No UI to enter data each time.  A command tool you can script for fast, consistent re-use!

After having to manually modify the disco.aspx and wsdl.aspx files by hand for the last three years, I finally found it tedious enough to create this utility.  There are other tools out there, but they require you to enter information into a Windows UI, they are not script-able, and still felt to tedious for me.  Call me lazy.  :)  Time is money.  This tool is a command line utility.  Simply execute the SPDev.exe command and your MyServiceDisco.aspx and MyServiceWsdl.aspx files are immediately ready for deployment.  SPDev also allows you to script the process.  Create a .cmd or .bat file and you’ll never have to enter any parameters again.  Another big benefit is you don’t need to use the Disco.exe utility since SPDev uses IIS and .NET instead which will always be on your development machine – since you are developing for SharePoint.  And, there are no temp files are generated (unless you want them generated).

Documentation for this utility is on my blog here: https://blog.crsw.com/spdev/